Skip to content

test: add Playwright e2e regression net for current app#2

Draft
zphillips wants to merge 1 commit into
developfrom
contrib/e2e-tests
Draft

test: add Playwright e2e regression net for current app#2
zphillips wants to merge 1 commit into
developfrom
contrib/e2e-tests

Conversation

@zphillips

Copy link
Copy Markdown
Owner
Field Value
Change type ♻️ Same behavior (test)
Risk severity S4 – Low

Summary

Adds a 7-journey Playwright regression net for the current app (network mocked) — a safety net before the React 19 / Vite / MapLibre modernization. No app code changes.

Decisions & alternatives

  • e2e-first (UI-level): assertions go through the UI, so the suite survives internal refactors — unlike unit tests bound to the current single large App component.
  • Considered unit-tests-first; rejected — they'd be largely rewritten by the refactor.
  • Trade-off: relies on the legacy dev server via --openssl-legacy-provider (Node 20 + webpack 4), tagged REMOVE-AFTER-VITE.

Links

Tests — how do we know it's safe? (check all used)

  • Unit
  • Integration
  • Contract
  • Synthetic / e2e
  • Manual
  • None

Suite runs 7/7 green (npx playwright test, self-contained, mocks config + ER API for determinism).

Incident detection — if this breaks in prod, how will we know?

N/A — test-only, never shipped to users; breakage shows in CI / local runs, not production.

Incident impact analysis — can we measure the blast radius?

N/A — S4, no production surface.

Rollback & mitigation — if it goes wrong, how do we fix it fast?

  • Safe to plain-revert? Yes — purely additive test files, no runtime/state/behavior touched.
  • Rollout: direct. If revert isn't enough: n/a.

Seven UI-level journeys (load, legend, story panel, track toggle, locate,
help tips, reset hotkey) with mocked config + ER API for determinism. These
assert behavior through the UI so they survive the planned Vite/React 19/
MapLibre overhaul.

webpack-dev-server runs under --openssl-legacy-provider (Node 20 + webpack 4);
tagged REMOVE-AFTER-VITE for removal in Pass 1.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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