Skip to content

Add browser E2E tests with Playwright#28

Merged
andreagrandi merged 3 commits intomasterfrom
browser-e2e-tests
Mar 14, 2026
Merged

Add browser E2E tests with Playwright#28
andreagrandi merged 3 commits intomasterfrom
browser-e2e-tests

Conversation

@andreagrandi
Copy link
Owner

Summary

  • Add pytest-playwright in a separate nox -s e2e session with 18 browser tests covering homepage, map, submit form, library detail, and stats pages
  • Mock external APIs (Photon, Nominatim, OSM tiles) via Playwright page.route() for deterministic tests
  • Add e2e CI job that runs in parallel with unit tests — both gate deployment (needs: [tests, e2e])

Test plan

  • nox -s tests passes (481 tests, 18 E2E deselected)
  • nox -s e2e passes (18 tests, deterministic across multiple runs)
  • CI tests and e2e jobs both run and gate deploy
  • Verify CI passes on this PR

Introduce pytest-playwright in a separate nox session (e2e) to catch
client-side regressions that server-side tests cannot: broken JS
interactions, HTMX wiring, Leaflet map init, and form UX flows.

18 tests covering homepage, map, submit form, library detail, and
stats pages. External APIs (Photon, Nominatim, OSM tiles) are mocked
via page.route() for determinism. CI runs e2e in parallel with unit
tests and both gate deployment.
Add guidance to run nox -s e2e after medium/large changes touching
templates, views, JS, HTMX, or URL routing. Document test structure,
fixtures, and prerequisites.
@andreagrandi andreagrandi merged commit 431bce4 into master Mar 14, 2026
6 checks passed
@andreagrandi andreagrandi deleted the browser-e2e-tests branch March 14, 2026 12:50
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