What
frontend-next/e2e/dashboard.spec.ts checks shell and error text, but it doesn't assert the navigation HTTP status or fail on uncaught page errors or console errors. It also has no automated accessibility check, even though #3182 just fixed a batch of a11y issues by hand, which leaves them free to regress.
Proposal
- A shared fixture:
page.on('pageerror') and console error fail the test (with an allowlist), and response.status() < 400 on every goto.
@axe-core/playwright over the main routes against the hermetic fixture server, failing on serious/critical violations. Run it per PR if it's fast enough, otherwise on a schedule. OmniRoute runs it nightly with a require-flag so a missing dependency fails loudly.
- Keep real-OIDC acceptance as a separate opt-in spec so fixture sessions are never presented as proof that auth works.
Sources
Found by the #3194 OmniRoute ops/CI deep-check (pinned 18bbb101, APIARY main 3dca4457).
What
frontend-next/e2e/dashboard.spec.tschecks shell and error text, but it doesn't assert the navigation HTTP status or fail on uncaught page errors or console errors. It also has no automated accessibility check, even though #3182 just fixed a batch of a11y issues by hand, which leaves them free to regress.Proposal
page.on('pageerror')and consoleerrorfail the test (with an allowlist), andresponse.status() < 400on everygoto.@axe-core/playwrightover the main routes against the hermetic fixture server, failing onserious/criticalviolations. Run it per PR if it's fast enough, otherwise on a schedule. OmniRoute runs it nightly with a require-flag so a missing dependency fails loudly.Sources
.github/workflows/nightly-resilience.ymldocs/ops/HOMOLOGATION.mdFound by the #3194 OmniRoute ops/CI deep-check (pinned
18bbb101, APIARYmain3dca4457).