peptiderepo
e00f777cdb
fix(ci): drop --with-deps from playwright install on self-hosted runner (v1.7.2) ( #23 )
...
Drop --with-deps from npx playwright install chromium. The peptide-vps runner has OS deps pre-installed; --with-deps invokes apt-get blocked by NoNewPrivileges hardening. Binary-only install verified for ghrunner via SSH.
Agent-Session: smoke-playwright-nodeps-20260617
2026-06-17 11:51:33 +07:00
peptiderepo
cae04721c7
ci: run deploy + smoke jobs on the self-hosted peptide-vps runner ( #21 )
...
Shared pipeline deploy-staging + deploy-production (deploy-app.yml) and the Playwright staging smoke (smoke.yml) now run on the org self-hosted runner [self-hosted, peptide-vps] from the VPS stable IP, fixing the Hostinger rotating-runner-IP throttle. CI/validate stay GitHub-hosted. v1.7.1.
QA: APPROVE-WITH-P2-NOTES (2026-06-17-e6f6b67); P2 = pre-existing stale peptiderepo/ owner refs (work via redirect, ref-cleanup batch).
Agent-Session: deploy-self-hosted-20260617
2026-06-17 11:04:59 +07:00
peptiderepo
4f574a3986
test(e2e): add smoke specs for Peptide News + PR Vision admin ( #20 )
...
* feat(e2e): add Peptide News admin smoke spec (07)
Covers dashboard (HTTP 200, no fatal, heading + summary cards + date filter),
settings (form present), articles, and LLM costs sub-pages.
Skip-if-absent guard on all tests: when plugin is not installed on the
environment, tests skip loudly instead of hard-failing.
Selectors sourced from:
admin/class-pn-admin-menu.php (slugs)
admin/partials/dashboard.php (.pn-summary-cards, .pn-date-filter, h1)
Agent-Session: claude/e2e-news-vision-admin-20260617
* feat(e2e): add PR Vision admin smoke spec (08)
Covers:
- Dashboard: HTTP 200, no fatal, h1 "PR Vision" heading visible
- Settings: page loads + API-key-manager card (#prv-key-card) present +
status indicator (#prv-key-source-badge) visible
- Write-only invariant: #prv_api_key input has value="" (stored key never
output); full page HTML asserted to not contain "sk-or-" prefix
- Costs (pr-vision-costs): loads without fatal
- Call Log (pr-vision-calls): loads without fatal
Skip-if-absent on every test: plugin absent or Settings page (v0.2.0
admin) not yet deployed => loud annotation + test.skip().
Selectors sourced from:
includes/core/class-prv-admin-page.php (h1 heading)
includes/core/class-prv-key-manager-renderer.php (#prv-key-card,
#prv-key-source-badge, #prv_api_key)
includes/core/class-prv-settings-page.php (MENU_SLUG)
includes/core/class-prv-costs-page.php (MENU_SLUG)
includes/core/class-prv-call-log-page.php (MENU_SLUG)
Agent-Session: claude/e2e-news-vision-admin-20260617
* chore(e2e): CHANGELOG 1.7.0 — Peptide News + PR Vision admin smoke specs
Agent-Session: claude/e2e-news-vision-admin-20260617
* chore(e2e): bump version to 1.7.0
Agent-Session: claude/e2e-news-vision-admin-20260617
* fix(e2e): guard-first ordering in specs 07+08 — skip before Invalid-plugin-page assert
In 07-peptide-news-admin (Articles + LLM Costs) and 08-pr-vision-admin
(Costs + Call Log), the hard expect(body).not.toContain('Invalid plugin page')
assertion fired BEFORE the isPluginAbsent() skip guard. If either plugin is
absent from staging, those tests would hard-fail — gating prod for all apps.
Fix: move isPluginAbsent() + test.skip() above the Invalid-plugin-page assert
in all four affected tests, mirroring the Dashboard/Settings guard-first pattern
already used in the same files.
- 07 Articles: skip guard now before Invalid plugin page check
- 07 LLM Costs: skip guard now before Invalid plugin page check
- 08 Costs: skip guard now before Invalid plugin page check
- 08 Call Log: skip guard now before Invalid plugin page check
Validated: npx playwright test --list lists all 38 tests cleanly.
Agent-Session: engineer-infra-e2e-guardfix-20260617
---------
Co-authored-by: peptiderepo <bot@peptiderepo.com >
2026-06-17 01:41:11 +07:00
peptiderepo
b9ffad1db3
test: board Generate-Now skip-if-absent smoke (M4 surface) ( #18 )
...
Skip-if-absent Playwright spec for the board New Article / Generate Now control; now live with prautoblogger v0.21.0. Gates future deploys.
Agent-Session: m4-generate-now-smoke-20260614
2026-06-15 01:53:49 +07:00
peptiderepo
65c5de61cb
test: dossier edit+rerun smoke (M3, skip-if-absent) — v1.4.0 ( #15 )
...
QA: APPROVE (companion verdict in qa-reviews/prautoblogger/2026-06-12-6ed639d.md check 10). Skip-if-absent per M3 binding.
Agent-Session: cto-e2e-merge-20260612
2026-06-12 22:04:20 +07:00
peptiderepo
d590dc9dee
fix(auth): survive ERR_ABORTED in login retry — recreate context, 5 attempts with backoff ( #16 )
...
QA: APPROVE (qa-reviews/peptide-e2e/). CEO program greenlight 2026-06-12.
Agent-Session: cto-e2e-merge-20260612
2026-06-12 22:02:51 +07:00
peptiderepo
a05d90405d
Dossier admin smoke: gate deploys on prautoblogger-dossier rendering ( #14 )
...
Merged ahead of the v0.19.3 dossier fix so staging smoke gates it.
QA: APPROVE qa-reviews/peptide-e2e/2026-06-12-0c5c301.md (re-head after conflict resolution)
Agent-Session: cto-dossier-403-hotfix-20260612
2026-06-12 18:29:25 +07:00
peptiderepo
52a05f994c
Board admin smoke: assert prautoblogger-board renders for admin ( #13 )
...
Guards the submenu-before-parent 404 class in the deploy gate.
QA: APPROVE-W-P2 qa-reviews/peptide-e2e/2026-06-12-113bb17.md
Agent-Session: cto-board-404-hotfix-merge-20260612
2026-06-12 16:05:30 +07:00
peptiderepo
d46a1e4680
feat: initial Playwright smoke suite
...
20 tests across 5 files covering all plugin surfaces on staging:
- Homepage load and PHP fatal detection
- Reconstitution Calculator shortcode + math
- Peptide Search AI widget + AJAX response
- Admin: all plugins active, PSA + PRAutoBlogger settings pages
- REST API: prc/v1/presets, peptides/v1/search, compounds, CPT types
Staging shortcode pages:
/reconstitution-calculator/ - [prc_calculator]
/search-peptides/ - [peptide_search]
/peptide-directory/ - [peptide_directory]
GHA workflow: smoke.yml supports manual dispatch + workflow_call
for use as a deploy gate from plugin repos.
2026-04-26 04:39:13 +00:00