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 |