Summary
Establish an automated frontend testing setup using Playwright for end-to-end testing as the primary strategy, with Vitest reserved for minimal unit-level
coverage. Playwright will also run automated accessibility checks via @axe-core/playwright. This covers test tooling, configuration, npm scripts, and CI
integration for the frontend.
Motivation
- E2E tests exercise the app as users actually experience it, catching integration issues unit tests miss
- Prefer high-confidence e2e coverage over brittle, low-value unit tests — keep Vitest for pure logic/utilities only
- Playwright runs across Chromium, Firefox, and WebKit from a single test suite
- Automated accessibility checks (WCAG via
axe-core) catch a11y regressions as part of the normal test run, not as a manual afterthought
- A consistent, scripted setup lets contributors and CI run the full suite with a single command
Acceptance Criteria
Out of Scope
- Comprehensive unit-test coverage of components — intentionally minimal; e2e is the preferred layer
- Visual regression / screenshot-diff testing (could be a follow-up issue)
- Backend or API testing (handled by the backend test suite)
- Manual accessibility audits and screen-reader testing (automated
axe-core checks do not replace these)
References
Summary
Establish an automated frontend testing setup using Playwright for end-to-end testing as the primary strategy, with Vitest reserved for minimal unit-level
coverage. Playwright will also run automated accessibility checks via
@axe-core/playwright. This covers test tooling, configuration, npm scripts, and CIintegration for the frontend.
Motivation
axe-core) catch a11y regressions as part of the normal test run, not as a manual afterthoughtAcceptance Criteria
vitestinstalled and configured (vitest.config.ts) for minimal unit testing of pure functions/utilities@playwright/testinstalled and configured (playwright.config.ts) with Chromium, Firefox, and WebKit projectsnpx playwright installdocumented in the README/contributing guide for first-time setup@axe-core/playwrightintegrated so e2e tests assert no critical/serious accessibility violations on key pagespackage.jsonscripts added:test(Vitest),test:e2e(Playwright), andtest:a11y(or accessibility assertions folded intotest:e2e)Out of Scope
axe-corechecks do not replace these)References