feat: Playwright route-level smoke test in validation pipeline #238

Open
opened 2026-04-05 18:58:57 +00:00 by forgejo_admin · 0 comments
Contributor

Type

Feature

Lineage

Discovered 2026-04-05 when PlayMe2K /admin shipped with 500 (ADMIN_SECRET missing from prod). Root URL curl returned 200 so validation passed — but /admin was broken. Route-level checks would have caught it.

Repo

forgejo_admin/claude-custom (validation skill/hook) + sop-validation in pal-e-docs

User Story

As an operator
I want validation to check every critical route, not just the root URL
So that broken pages never ship to end users again

Context

PlayMe2K validation used curl / → 200 as the frontend smoke test. This missed the /admin 500 because only the root route was healthy. Marcus received a link to a broken admin page.

Every frontend app should define its critical routes on its project page. During /validate-ticket, Playwright navigates each route, screenshots, and fails the validation if any returns non-200.

File Targets

  • sop-validation (pal-e-docs note) — add "Route-level smoke test" step to Frontend repos checklist
  • skill-validate-ticket (pal-e-docs note) — add Playwright route check step for frontend repos
  • Per-project: each frontend project page should list critical routes in a ### Routes section

Acceptance Criteria

  • sop-validation updated: frontend checklist includes Playwright route checks
  • PlayMe2K project page has ### Routes section listing /, /play, /admin, /terms
  • Future /validate-ticket runs use Playwright to hit each listed route
  • Any non-200 response fails the validation

Test Expectations

  • Run /validate-ticket on a frontend item — verify Playwright route checks execute
  • Confirm a 500 route causes FAIL verdict

Constraints

  • Playwright MCP tools already available (mcp__playwright__*)
  • Don't over-engineer — route list per project, Playwright navigate + check status
  • This is a process improvement, not app code

Checklist

  • sop-validation note updated
  • skill-validate-ticket note updated
  • PlayMe2K project page Routes section added
  • PR opened (if claude-custom changes needed)
  • No unrelated changes
  • sop-validation — SOP being updated
  • forgejo_admin/twitch-2k-wager#63 — the bug this would have caught
  • forgejo_admin/twitch-2k-wager#46 — dev-only fix that created the gap
### Type Feature ### Lineage Discovered 2026-04-05 when PlayMe2K /admin shipped with 500 (ADMIN_SECRET missing from prod). Root URL curl returned 200 so validation passed — but /admin was broken. Route-level checks would have caught it. ### Repo `forgejo_admin/claude-custom` (validation skill/hook) + `sop-validation` in pal-e-docs ### User Story As an **operator** I want **validation to check every critical route, not just the root URL** So that **broken pages never ship to end users again** ### Context PlayMe2K validation used `curl /` → 200 as the frontend smoke test. This missed the /admin 500 because only the root route was healthy. Marcus received a link to a broken admin page. Every frontend app should define its critical routes on its project page. During /validate-ticket, Playwright navigates each route, screenshots, and fails the validation if any returns non-200. ### File Targets - `sop-validation` (pal-e-docs note) — add "Route-level smoke test" step to Frontend repos checklist - `skill-validate-ticket` (pal-e-docs note) — add Playwright route check step for frontend repos - Per-project: each frontend project page should list critical routes in a `### Routes` section ### Acceptance Criteria - [ ] sop-validation updated: frontend checklist includes Playwright route checks - [ ] PlayMe2K project page has ### Routes section listing /, /play, /admin, /terms - [ ] Future /validate-ticket runs use Playwright to hit each listed route - [ ] Any non-200 response fails the validation ### Test Expectations - [ ] Run /validate-ticket on a frontend item — verify Playwright route checks execute - [ ] Confirm a 500 route causes FAIL verdict ### Constraints - Playwright MCP tools already available (mcp__playwright__*) - Don't over-engineer — route list per project, Playwright navigate + check status - This is a process improvement, not app code ### Checklist - [ ] sop-validation note updated - [ ] skill-validate-ticket note updated - [ ] PlayMe2K project page Routes section added - [ ] PR opened (if claude-custom changes needed) - [ ] No unrelated changes ### Related - `sop-validation` — SOP being updated - `forgejo_admin/twitch-2k-wager#63` — the bug this would have caught - `forgejo_admin/twitch-2k-wager#46` — dev-only fix that created the gap
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/claude-custom#238
No description provided.