e2e: per-domain critical-path coverage #325
Labels
No labels
area:auth
area:ci
area:db
area:infra
area:native
area:pwa
area:service
epic
feature
foundation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
james/carol#325
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs #150
Build on the Playwright e2e foundation (#150) with per-domain critical-path specs that exercise each major surface end to end against the assembled app (Expo RN-Web SPA served by the Next.js API, SQLite).
Isolation insight that reshaped the scope: Carol enforces strict per-user data isolation, so each spec just registers its own
uniqueEmail()user and works entirely in that silo — different specs never see each other's data even on the shared per-boot DB. So no per-test DB reset is needed for these specs, and #325 does not depend on #326 after all.Scope delivered here — five specs (one per domain), each registering a fresh user and structured with
test.stepblocks like the smoke spec:Deferred (moves to #326): the admin spec (invite-only registration + admin-approval pending flow). Those flows are gated by
REGISTRATION_POLICY, a process-wide env var set at boot (apps/api/lib/auth/registration.ts), so exercising them needs a second app boot under a non-open policy (an extra Playwright project + serve script) — test-infra work that belongs with #326. Admin coverage lands there alongside that second policy-configured boot.Each spec follows the foundation's conventions (roles/aria selectors, i18n catalog values via
fixtures/strings.ts,uniqueEmail()isolation). The existinge2eCI job runs the whole suite automatically — no workflow change.