3.0 KiB
3.0 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | ||
|---|---|---|---|---|---|---|---|---|
| 05-e2e-cookie-scope-assertions | E2E cookie-name assertions | done | 3 |
|
plan.md | ../../specs/auth/requirements/fix-multi-instance-cookie-isolation.md |
Task 05: E2E cookie-name assertions
Acceptance
- The auth e2e project asserts that the login response's
Set-Cookienames the session cookiekandev_session_<port>(port = the fixture's backend port), and that after login the app renders authenticated content. - The workspace-switch e2e spec (or a new focused spec) asserts that
selecting a workspace in the sidebar writes
kandev-active-workspace_<port>rather than the unprefixed name. E2E covers the Kanban cookie only: the existingworkspace-switch-sidebar-isolation.spec.tsruns with Office disabled, so theoffice-active-workspace_<port>write is asserted at the unit level (task 04 sidebar test), not in E2E. An Office-enabled workspace-switch E2E setup is recorded as a follow-up, not a blocker. - Both assertions fail pre-change (the cookies are unprefixed today).
- Scope limitation (from review round 1): the Playwright fixture runs one
backend per worker (
apps/web/e2e/fixtures/backend.ts,restart()replaces that same process), so e2e here proves the browser-observable cookie naming contract only. The two-instance behavioral regression (independent sessions and workspace state per port) is proven by the Go integration tests in tasks 02 and 03. A two-backend Playwright fixture is explicitly out of scope; note it as a follow-up in the task output. - The e2e files live in
apps/web/e2e/tests/following the existing auth and workspace-switch spec conventions; no new infrastructure.
Verification
cd apps/web && pnpm e2e:raw --project=auth
# plus the workspace-switch spec's exact command from apps/web/e2e/README.md
Files likely touched
apps/web/e2e/tests/auth/login.spec.ts(or the auth project's login spec)apps/web/e2e/tests/task/workspace-switch-sidebar-isolation.spec.ts(or a sibling spec asserting cookie names)
Dependencies
Shipped behavior of tasks 02 and 04.
Parallelism
Sequential with task 06? No — both are Wave 3 and disjoint (e2e specs vs docs); parallel-safe.
Inputs
- Spec:
API surface(cookie names observable via Set-Cookie / document cookie),Scenarios(first, second, fourth). - Existing helpers:
apps/web/e2e/helpers/api-client.ts,apps/web/e2e/helpers/causal-waits.ts.
Risks
- The session cookie is HttpOnly, so assertions must read the response
Set-Cookieheader, notdocument.cookie. - The auth project gates on
KANDEV_FEATURES_AUTH=trueper-spec viabackend.restart(env); the workspace-switch spec runs auth-off and only asserts the workspace cookie names.
Output contract
Report the asserted cookie names, spec files, exact commands and results,
the noted two-backend-e2e follow-up, blockers/risks, then mark this task
done and update plan.md.