trails/e2e
Ullrich Schäfer f94020a93a
Block unmocked external requests in E2E tests
Surface net for the class of bug we hit in #282 — a POI test silently
relied on a live Overpass server for months because its `page.route`
mock was targeting a URL the browser no longer hit directly. CI stayed
green on coincidence (real OSM data happened to satisfy the "any
marker renders" assertion) until upstream behaviour drifted.

Add a shared Playwright fixture (e2e/fixtures/test.ts) that installs a
catch-all `page.route("**", ...)` before each test. Requests to
localhost + known tile CDNs pass through via `route.continue()`;
anything else is aborted and accumulated. At test teardown, a non-empty
blocked list throws, failing the test with the offending URLs and a
pointer to the fixture.

All seven e2e *.test.ts files updated to import test/expect (+ types)
from ./fixtures/test.

Full suite passes with this fixture in place (50/50 at --workers=2;
catch-all never fires, meaning no test currently relies on an
unallowlisted external service).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 22:42:29 +02:00
..
fixtures Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
auth.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
demo-bot.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
integration.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
journal.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
planner.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
public-content.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00
settings.test.ts Block unmocked external requests in E2E tests 2026-04-19 22:42:29 +02:00