1Business context
FoodDash is a food delivery marketplace. Customers order from one restaurant at a time, customise dishes, apply coupons and tip; the business must price bills exactly (delivery fee, 5% tax, discount caps) and show live order status to reduce support contacts.
Filter restaurants, add dishes with quantity steppers, customise a pizza in a modal, handle a replace-cart prompt, add tip and coupon, then watch the order move live and rate it.
2Users & roles
- 👤 Hungry customer — browses, orders, tracks, rates and reorders (no login)
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Restaurants | /apps/food | Cuisine chips, veg-only switch, search and sort |
| Menu | /apps/food/r/[id] | ADD → quantity stepper, customisation modal (size, toppings) |
| Checkout | /apps/food/checkout | Coupon, tip, address, phone, payment and bill breakdown |
| Live tracking | /apps/food/track/[id] | Placed → Preparing → Out for delivery → Delivered, then rating |
| My orders | /apps/food/orders | Past orders with reorder |
4Main end-to-end journey
Customised order to delivery
- Filter Pizza and open Slice of Napoli
- Customise a Margherita (medium, olives) and add
- Add another item twice
- Apply FEAST50, add a ₹20 tip
- Choose Home address, phone and UPI
- Place order and wait
Expected: Custom item ₹489, free delivery, total ₹741, and status advances to Preparing and on to Delivered
5Business rules & validations
- Filters & switchBeginner
Combine cuisine-* chips, veg-only (role=switch), food-search and restaurant-sort; assert restaurant-count.
- ADD becomes a stepperBeginner
add-<item> turns into <item>-dec / <item>-qty / <item>-inc; decreasing to 0 brings ADD back.
- Customisation modalIntermediate
Pick size-* and topping-* (max 3 — the 4th is disabled); custom-total updates live.
- Replace cart promptIntermediate
Adding from a second restaurant opens replace-cart-modal; keep-cart vs confirm-replace.
- Coupon rulesIntermediate
FEAST50 under ₹299 shows how much more to add; above it caps the discount at ₹100.
- Bill mathsAdvanced
Verify bill-items, bill-discount, bill-delivery (free ≥ ₹499), bill-taxes (5%) and bill-total with a tip.
- Live trackingAdvanced
order-status moves Order placed → Preparing → Out for delivery → Delivered every ~3s.
- Rate & reorderIntermediate
After delivery, rate-* + submit-rating shows rating-thanks; reorder-<id> refills the cart.
6Test data & credentials
- URL
- /apps/food
- Login
- not required
- Coupon
- FEAST50 (min ₹299)
- Free delivery
- above ₹499
7Glossary
- FEAST50
- 50% off, minimum order ₹299, discount capped at ₹100
- Free delivery
- Delivery fee is waived at ₹499 and above
- Single-restaurant cart
- Adding from another restaurant asks to keep or replace the cart
8Watch-outs for automation
- ⚠️ADD turns into a stepper; decreasing to 0 brings ADD back
- ⚠️Order status advances every ~3 s — chain text waits
- ⚠️Toppings are capped at 3 — the 4th is disabled
9Suggested test strategy
1 · Smoke
3
P1 positive and end-to-end cases — run on every build.
2 · Regression
17
All cases, incl. 4 negative and 4 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- FOODDASH-01 — Order food end to end
- FOODDASH-E2E-01 — Customised order to delivery
- FOODDASH-E2E-02 — Rate and reorder