Reference

Test data & fixtures

Managing test data — seeding preconditions, resetting between runs, knowing what's isolated vs. shared — is its own real skill, separate from any one flow. Every scenario with persisted state exposes a *-seed endpoint (bootstrap state directly, skip clicking through the UI) and a *-reset/*-clear endpoint (return to a clean slate). This page catalogs all of them.

Per-session (cookie)

Isolated per browser session — safe to run in parallel, never interferes with anyone else's test run.

Shared (in-memory)

Visible to every visitor, like a real shared staging environment — no cookies at all. Used by Two-Role Approval Workflow (two personas must see the same data) and every pure-API scenario below.

None — ephemeral

Nothing is persisted at all — live-only data (SSE/WebSocket), so there's nothing to seed or reset.

Scenario Isolation Seed Reset
Checkout Flow Per-session (cookie)
POST /api/scenarios/cart-seed

{ items: [{ productId, qty }] }

POST /api/scenarios/cart-clear
Admin Panel Per-session (cookie)
POST /api/scenarios/records-seed

{ records: [{ name, email, role, status }] }

Requires an active login — seeding never bypasses auth.

POST /api/scenarios/records-reset
API-Seeded Task Board Per-session (cookie)
POST /api/scenarios/tasks/seed

{ tasks: [{ title, status }] }

POST /api/scenarios/tasks/reset
Profile Wizard Per-session (cookie)
POST /api/scenarios/wizard-seed

{ fullName?, email?, role?, theme?, notifications?, bio?, completed? }

Jump straight to any step's data, e.g. completed:true to land on Complete.

POST /api/scenarios/wizard-reset
Support Ticket Submission Per-session (cookie)
POST /api/scenarios/tickets-seed

{ tickets: [{ subject, priority, status }] }

POST /api/scenarios/tickets-reset
Async File Processing Per-session (cookie)
POST /api/scenarios/jobs-seed

{ filename?, elapsedMs, willSucceed }

elapsedMs >= 5000 lands directly on complete/failed — skip the real wait.

POST /api/scenarios/jobs-reset
Job Search + Apply + Track Per-session (cookie)
POST /api/scenarios/applications-seed

{ applications: [{ jobId, jobTitle, applicantName, applicantEmail }] }

POST /api/scenarios/applications-reset
Password Reset Per-session (cookie)
Draggable Kanban Per-session (cookie)
POST /api/scenarios/kanban-tasks/seed

{ tasks: [{ title, status }] }

position within each column is assigned automatically from array order.

POST /api/scenarios/kanban-tasks/reset
Two-Role Approval Workflow Shared (in-memory)
POST /api/scenarios/approvals-seed

{ requests: [{ submittedBy, title, amount, status }] }

No auth required — visible to every session, including before either persona logs in.

POST /api/scenarios/approvals-reset
Notification Center None — ephemeral
Real-Time Chat None — ephemeral
Auth Token Lifecycle Shared (in-memory)
POST /api/scenarios/api-auth/token

{ username: "standard_user", password: "Password123!" } → { accessToken, refreshToken }

POST /api/scenarios/api-auth/revoke

{ refreshToken } — revokes just that token, not a global reset.

Chained Order Pipeline Shared (in-memory)
POST /api/scenarios/pipeline/orders

(no body — creates a new order in "created" state)

POST /api/scenarios/pipeline/reset
Idempotency Keys Shared (in-memory)
POST /api/scenarios/idempotent/charges

{ amount } + header Idempotency-Key

POST /api/scenarios/idempotent/reset
Workspace/Tenant Isolation Shared (in-memory)
POST /api/scenarios/workspaces

{ name } → { workspace }

Then POST /api/scenarios/workspaces/:workspaceId/items to add scoped data.

POST /api/scenarios/workspaces-reset
Fixture Dependency Graph Shared (in-memory)
POST /api/scenarios/workspaces/:workspaceId/seed-fixtures

(no body — creates a valid user → payment method → product chain)

POST /api/scenarios/workspaces-reset