Playwright scenario coverage: device-gated regression scenarios (alcatraz-infra#64 follow-up) #173

Open
opened 2026-06-29 17:01:41 +02:00 by quartermaster · 0 comments

Why

Bundle tracker for adding Playwright scenario coverage to the operator-device-gated AC class identified by alcatraz-infra#64 (Playwright-replay regression-automation substrate). The substrate decision (option (b) Playwright-direct with descriptive test names) is settled by construction — 62 tests already in place. This tracker drives the per-scenario coverage extension.

Background

Per alcatraz-infra#64 + the 2026-06-23 milestone-close playtest review: ~19 operator-device-gated ACs accumulated across recent sprints. Each currently requires manual device-on-hand verification. Substantial regression-risk surface as the codebase evolves. The existing Playwright substrate is ready to absorb these scenarios; this tracker enumerates the candidates.

Candidate scenarios (initial list)

Sourced from closed + open issues that explicitly carry mobile/device-class or playtest-only gating:

  • #143 Mobile drop timing artifact: desktop continues briefly + freezes on reconnect — needs WS-mock reconnect ordering
  • #144 Desktop Back rapid double-click defeats pushState-sentinel trap (#109 regression) — rapid-input pattern, Playwright-friendly
  • #149 Force-take-on-valid-token: resume-race during pre-detection window — race-condition class; WS-mock can order events deterministically
  • #145 Browser-restart resume UX: auto-resume to previous game on app-load — new-feature; gate the AC at impl-time
  • #141 HIGH SCORES click-through → "LOADING…" stuck state — UI overlay class, similar to #135
  • #142 CELLMATE FOUND screen: BACK/CANCEL affordance — UI flow extension

Additional candidates surface from sprint retros; this list is a starting point, not exhaustive.

Mobile/device-emulation extension

The current playwright.config.ts projects array is chromium only. Mobile-axis scenarios (#143, #149) need Mobile Chrome or Mobile Safari device-emulation project added. One-line config change + per-project test gating.

Multi-scenario shape

Each scenario can land as:

  1. A new test in existing spec file (e.g., extend versus.spec.ts for reconnect/race scenarios)
  2. Or a new spec file if the class is large enough (e.g., mobile.spec.ts for mobile-axis coverage)

Sharded delivery: pick the highest-leverage 2-3 from the candidates above for the first PR; iterate from there.

What this tracker does NOT do

  • Does NOT cover documentation (client/test/README.md + BookStack operator-facing index) — separate slice
  • Does NOT cover cross-game library extraction — premature until e-train exists
  • Does NOT block on each candidate; one or two can ship + this tracker stays open for the rest

Refs

  • alcatraz-infra#64 (parent meta-tracker; substrate decision settled there)
  • alcatraz-infra/PR #61 (Playwright recording-rig; companion infrastructure)
  • cellblock/#92 (WS-mock substrate; foundation for versus-side scenarios)

priority/medium · size/M (per-scenario; iteratively closed)

## Why Bundle tracker for adding Playwright scenario coverage to the operator-device-gated AC class identified by **alcatraz-infra#64** (Playwright-replay regression-automation substrate). The substrate decision (option (b) Playwright-direct with descriptive test names) is settled by construction — 62 tests already in place. This tracker drives the per-scenario coverage extension. ## Background Per alcatraz-infra#64 + the 2026-06-23 milestone-close playtest review: ~19 operator-device-gated ACs accumulated across recent sprints. Each currently requires manual device-on-hand verification. Substantial regression-risk surface as the codebase evolves. The existing Playwright substrate is ready to absorb these scenarios; this tracker enumerates the candidates. ## Candidate scenarios (initial list) Sourced from closed + open issues that explicitly carry mobile/device-class or playtest-only gating: - [ ] **#143** Mobile drop timing artifact: desktop continues briefly + freezes on reconnect — needs WS-mock reconnect ordering - [ ] **#144** Desktop Back rapid double-click defeats pushState-sentinel trap (#109 regression) — rapid-input pattern, Playwright-friendly - [ ] **#149** Force-take-on-valid-token: resume-race during pre-detection window — race-condition class; WS-mock can order events deterministically - [ ] **#145** Browser-restart resume UX: auto-resume to previous game on app-load — new-feature; gate the AC at impl-time - [ ] **#141** HIGH SCORES click-through → "LOADING…" stuck state — UI overlay class, similar to #135 - [ ] **#142** CELLMATE FOUND screen: BACK/CANCEL affordance — UI flow extension Additional candidates surface from sprint retros; this list is a starting point, not exhaustive. ## Mobile/device-emulation extension The current `playwright.config.ts` `projects` array is `chromium` only. Mobile-axis scenarios (#143, #149) need `Mobile Chrome` or `Mobile Safari` device-emulation project added. One-line config change + per-project test gating. ## Multi-scenario shape Each scenario can land as: 1. A new test in existing spec file (e.g., extend `versus.spec.ts` for reconnect/race scenarios) 2. Or a new spec file if the class is large enough (e.g., `mobile.spec.ts` for mobile-axis coverage) Sharded delivery: pick the highest-leverage 2-3 from the candidates above for the first PR; iterate from there. ## What this tracker does NOT do - Does NOT cover documentation (`client/test/README.md` + BookStack operator-facing index) — separate slice - Does NOT cover cross-game library extraction — premature until e-train exists - Does NOT block on each candidate; one or two can ship + this tracker stays open for the rest ## Refs - alcatraz-infra#64 (parent meta-tracker; substrate decision settled there) - alcatraz-infra/PR #61 (Playwright recording-rig; companion infrastructure) - cellblock/#92 (WS-mock substrate; foundation for versus-side scenarios) priority/medium · size/M (per-scenario; iteratively closed)
Sign in to join this conversation.
No labels
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
frankenbit/cellblock#173
No description provided.