UI workflow
Scenario
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.
How this works
- · Products come from a fixed in-memory catalog — nothing to seed, it's the same list every time.
- · Adding to cart writes a cart array into an httpOnly session cookie, so it survives refreshes and new tabs in the same browser, but is invisible to anyone else.
- · The payment step has a simulated ~900ms processor delay and declines about 30% of attempts on purpose — retrying until it succeeds is the actual skill being tested, not a guaranteed happy path.
- · A successful order gets a freshly generated order id and clears the cart. The order itself isn't stored anywhere beyond that response, so it won't reappear after a cart reset.
What you'll practice
- Filtering/searching a product list, then carrying a choice forward across pages
- A cart that persists across full page navigations — real server-backed state, not a single-page app illusion
- Waiting out an intermittently-failing async step (the payment call fails ~30% of the time) and retrying until it succeeds
- A confirmation page whose order id is different every time — nothing to hardcode
- 1 Products →
- 2 Cart →
- 3 Checkout →
- 4 Confirmation