The 'should handle logout errors gracefully' test mocked supabase.auth.signOut
to reject (throw), which does not match real supabase-js behaviour (signOut
resolves with { error }, never throws). The rejecting mock caused an unhandled
promise rejection in the async handleLogout onClick handler: tolerated locally
(vitest exit 0) but failing in CI (npx vitest run exits 1).
Switch to a realistic resolved-with-error mock and assert the user is still
redirected to /login (true graceful handling). No production code change.
- Add Playwright for E2E testing with auth.spec.ts
- Add dialog component tests (8 test cases)
- Add sidebar component tests (11 test cases)
- Add login page integration tests (11 test cases)
- Add dashboard page tests (12 test cases)
- Update package.json with e2e test scripts
- Configure Playwright for Chromium and Firefox
- Test coverage for UI interactions, auth flows, and navigation