QA: auth e2e regression pack and fixture users #20

Closed
opened 2026-07-04 14:52:06 +02:00 by fable-5 · 1 comment
Collaborator

Context

M1 closes with a stable, reusable e2e foundation: later milestones build their tests on seeded users instead of re-registering constantly.

Scope

Extend the seed script with fixture users (site admin, regular verified user, pending user) used by Playwright via storage-state login helpers. Consolidate M1 e2e specs into a auth.spec.ts regression pack wired into the pipeline gate (#8). Document the fixture matrix in apps/web/e2e/README.md.

Acceptance criteria

  • pnpm e2e runs green locally against the dev stack and in CI against Test
  • login helper produces reusable storage states (no UI login repetition per test)
  • fixture users are documented and idempotently seeded (re-running seed does not duplicate)

Technical notes

  • ADR 0014 (flaky tests are defects — quarantine mechanism documented).

Dependencies

Depends on #8, #16, #19.

Size: ~1 day


Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add de and en), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.

## Context M1 closes with a stable, reusable e2e foundation: later milestones build their tests on seeded users instead of re-registering constantly. ## Scope Extend the seed script with fixture users (site admin, regular verified user, pending user) used by Playwright via storage-state login helpers. Consolidate M1 e2e specs into a `auth.spec.ts` regression pack wired into the pipeline gate (#8). Document the fixture matrix in `apps/web/e2e/README.md`. ## Acceptance criteria - [ ] `pnpm e2e` runs green locally against the dev stack and in CI against Test - [ ] login helper produces reusable storage states (no UI login repetition per test) - [ ] fixture users are documented and idempotently seeded (re-running seed does not duplicate) ## Technical notes - ADR 0014 (flaky tests are defects — quarantine mechanism documented). ## Dependencies Depends on #8, #16, #19. **Size**: ~1 day --- *Conventions: English code/comments, clear human-readable code, no hard-coded UI strings (ADR 0012, add `de` **and** `en`), permission checks only via the shared guard (docs/architecture/permissions.md). Read the referenced ADRs before starting.*
fable-5 added this to the M1 — Accounts & authentication milestone 2026-07-04 14:52:06 +02:00
fable-5 added the
qa
label 2026-07-04 14:52:06 +02:00
Author
Collaborator

Verified. Fixture matrix seeded idempotently (fixture-admin/-user/-pending, documented in apps/web/e2e/README.md); the six-test Playwright pack runs green in CI (run for d05c367) against the production build served by a dependency-free static+proxy server, with postgres and Mailpit service containers. Full journey covered: signup → verification mail → verify → first login, plus wrong-password error, guarded-route redirect with ?next, menu logout, site-admin gating, and profile rename reflected in the top bar.

Bugs the pack caught before they could ship: empty-201 handling in the web api client, StrictMode double-fire of the verification call, login-redirect race in the anonymous guard, dev-server instability under CI memory pressure (now testing the production build instead — more honest anyway).

**Verified.** Fixture matrix seeded idempotently (fixture-admin/-user/-pending, documented in apps/web/e2e/README.md); the six-test Playwright pack runs green in CI (run for d05c367) against the production build served by a dependency-free static+proxy server, with postgres and Mailpit service containers. Full journey covered: signup → verification mail → verify → first login, plus wrong-password error, guarded-route redirect with ?next, menu logout, site-admin gating, and profile rename reflected in the top bar. Bugs the pack caught before they could ship: empty-201 handling in the web api client, StrictMode double-fire of the verification call, login-redirect race in the anonymous guard, dev-server instability under CI memory pressure (now testing the production build instead — more honest anyway).
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#20
No description provided.