Skip to content

test(e2e): verify the panel in a real browser - #13

Merged
Nain9Dev merged 2 commits into
feat/mobile-pwafrom
feat/e2e
Oct 21, 2026
Merged

Nain9Dev merged 2 commits into
feat/mobile-pwafrom
feat/e2e

Conversation

@Nain9Dev

Copy link
Copy Markdown
Owner

What

Closes the gap the traceability matrix admitted: the panel's visual behaviour is now verified by tests, in a real browser, against the real application (task T-056, ADR-0011 Proposed).

  • e2e/: 25 Playwright tests, self-contained (own package.json and lockfile). Nothing in it ships; the panel gains no dependency or build step.
  • Covers REQ-090 to REQ-096 and REQ-101 to REQ-105: landing and reduced motion, buyer and organizer views, language (default, switch, persistence, no missing keys on any route), buyer link and QR (decoded by jsQR from a screen capture, independent of the encoder), offline shell and API never faked, 360 px layout and 44 px targets.
  • Own CI job, Browser tests, so a browser flake never hides the .NET result. npm audit, a pinned lockfile and Dependabot for e2e/.
  • Requirements and traceability updated; the gap now lists only what cannot be automated here (installing on a physical phone).

Verification

  • npx playwright test 25/25 locally (Edge channel); a mutation check (breaking the QR format bits) makes the QR test fail, then reverted.
  • actionlint clean, npm audit clean, gitleaks clean. zizmor reports the repository's existing unpinned-action findings; the new job follows the same convention as the existing ones.

Not verified

The new CI job has not run on a GitHub runner yet (Linux, Playwright's bundled Chromium); this PR is its first run. Based on feat/mobile-pwa (PR #12) because the tests cover its features; GitHub retargets it to main when #12 merges.

25 Playwright tests in a self-contained e2e/ folder cover the landing and
reduced motion, the buyer and organizer views, the language selector
(default, switch, persistence, no missing keys on any route), the buyer
link and its QR code (decoded by jsQR from a capture of the screen), the
offline shell and the 360 px layout.

They run in their own CI job so a browser flake never hides the .NET
result, with a pinned lockfile, npm audit and Dependabot for e2e/.
Nothing in e2e/ ships and the panel gains no dependency.
ADR-0011 (Proposed) records the choice of Playwright outside the panel.
REQ-090 to REQ-096 and REQ-101 to REQ-105 move into the requirements
with their tests; the traceability gap now lists only what is still not
automated (installing on a physical phone). Runbook, README, changelog
and the spec task lists are updated.
@Nain9Dev
Nain9Dev merged commit 4320c0c into feat/mobile-pwa Oct 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant