Scenarios
Combine skills into a real flow
Drills isolate one locator or action at a time. Scenarios string several of them into a realistic, multi-page flow with state that actually carries across pages — closer to what you'd be asked to automate on the job, and a better test of whether your framework and page-object structure hold up outside a single isolated page.
Every scenario with persisted state has a seed/reset API for bootstrapping preconditions without clicking through the UI first — see the Test Data & Fixtures reference.
UI Workflows
12Click through a real browser flow — logins, forms, boards, drag-and-drop — across multiple pages. State usually lives in your session cookie, so it's private to you and safe to reset any time.
Checkout Flow
Search and filter products, build a cart that survives across pages, get through an intermittently-flaky payment step, and land on a real order confirmation with a fresh order id every time.
Admin Panel
Log in, search and manage a table of user records — edit a role, suspend an account, add a new user, delete one — then log out and confirm the page is protected again.
API-Seeded Task Board
A real REST API (create/list/update/delete tasks) backing a live board UI. Seed or verify data through the API directly, then confirm the UI reflects it — the API-plus-UI pattern real hybrid test suites rely on.
Profile Wizard
A simple multi-step form — Basic Info, Preferences, Review, Complete — with data that persists across steps and an unsaved-changes prompt if you try to leave early. The gentlest scenario to start with.
Support Ticket Submission
Submit a support ticket with an optional file attachment, then track it — and close it — from a My Tickets list. Covers the validation-error path too, not just the happy path.
Notification Center
A bell icon with a live unread-count badge, backed by Server-Sent Events. Open the dropdown, mark items read individually or all at once, and watch the badge react.
Async File Processing
Upload a file, then poll a real job-status endpoint until it resolves (~5s) — complete about 75% of the time, failed the rest, requiring a retry. No fixed sleeps will reliably pass this one.
Job Search + Apply + Track
Search listings with a typeahead suggestion list, apply to one via a dynamically-routed page with a resume upload, then track and withdraw applications from a My Applications list.
Password Reset
Request a reset link (no real email — it's shown directly), follow the token-bearing link, set a new password, then log in with it. The new password is real for the rest of your session.
Draggable Kanban
Real native HTML5 drag-and-drop between and within columns, with order persisted to a server-backed API — combines the Drag & Drop drill's flaky-event lesson with genuine, verifiable state.
Two-Role Approval Workflow
An employee submits a request, a manager (a separate login, separate session) approves or rejects it with a comment, and the employee sees the outcome. Data is shared across sessions, not cookie-isolated like everywhere else on this site.
Real-Time Chat
A single shared chat room over a real WebSocket connection — open two tabs and watch messages and a typing indicator sync between them instantly. True bidirectional interception, not Server-Sent Events.
API Scenarios
5No browser UI, no cookies — pure HTTP calls (curl, Postman, or your own scripts) against a stateful API. Every one of these has a live Console page for trying requests without leaving the browser, and covers a specific test-data-management pattern: token expiry, chained state transitions, idempotent retries, tenant isolation, and fixture dependency ordering. Each card below is paired with its endpoint reference and a reset button, so you can check a signature or clear state without clicking in first.
Auth Token Lifecycle
Pure API: get a short-lived access token (20s) and a refresh token, hit a protected endpoint until it expires, refresh to get a new pair (rotating out the old refresh token), or revoke it outright. No cookies, no browser session — just bearer tokens.
Endpoints
POST /api/scenarios/api-auth/token
GET /api/scenarios/api-auth/protected
POST /api/scenarios/api-auth/refresh
POST /api/scenarios/api-auth/revoke
No reset needed — tokens self-expire (20s access / 5min refresh).
Chained Order Pipeline
Pure REST, no cookies: create an order, capture its id, confirm payment, then ship — each transition is validated against the current state (409 if you skip a step), and continuity comes entirely from the id in the URL.
Endpoints
POST /api/scenarios/pipeline/orders
GET /api/scenarios/pipeline/orders/:id
POST /api/scenarios/pipeline/orders/:id/confirm-payment
POST /api/scenarios/pipeline/orders/:id/ship
Idempotency Keys
A charge endpoint that requires an Idempotency-Key header — replaying the same key returns the exact original response instead of creating a duplicate, the pattern real payment APIs use to survive network retries.
Endpoints
POST /api/scenarios/idempotent/charges
GET /api/scenarios/idempotent/charges
Workspace/Tenant Isolation
Create two workspaces, add items to each, and confirm the API keeps them completely separate — items in one never leak into the other, and an unknown workspace id 404s instead of returning an empty list.
Endpoints
POST /api/scenarios/workspaces
GET /api/scenarios/workspaces/:workspaceId/items
POST /api/scenarios/workspaces/:workspaceId/items
Fixture Dependency Graph
Build a chain of test fixtures by hand inside a workspace — user, product, payment method, order — and see the specific error each one throws when a dependency is missing, plus a seed-fixtures shortcut once you know the correct order.
Endpoints
POST /api/scenarios/workspaces/:workspaceId/users
POST /api/scenarios/workspaces/:workspaceId/products
POST /api/scenarios/workspaces/:workspaceId/payment-methods
POST /api/scenarios/workspaces/:workspaceId/orders
POST /api/scenarios/workspaces/:workspaceId/seed-fixtures