PracticeQAAutomation logoPracticeQAAutomation

📘 Project KT · Hospitality

🏨 StayEase

Hotel booking

Complexity
Advanced
Screens
6
Scenarios
8
Test cases
15

1Business context

StayEase is a hotel booking site. The business needs accurate availability, correct room capacity rules and transparent pricing (add-ons + 12% tax), plus self-service cancellation to reduce support calls.

Search a destination, filter by stars, price and amenities, pick a room with add-ons, enter guest details, pay and manage the reservation.

2Users & roles

  • 👤 Traveller — searches, filters, books and cancels (no login)

3Modules & screens

ScreenRouteWhat it does
Search/apps/hotelDestination, check-in day, nights and guests
Results/apps/hotel/resultsStar, price and amenity filters, sorting and result count
Hotel detail/apps/hotel/hotel/[id]Room types with capacity limits
Checkout/apps/hotel/checkoutGuest details, add-ons, pay now (card) or pay at hotel
Confirmation/apps/hotel/confirmationReservation id (SE-…) after a short processing step
My reservations/apps/hotel/reservationsView and cancel with a mandatory reason

4Main end-to-end journey

Search, filter and book a hotel

  1. Open /apps/hotel, choose Goa, pick a check-in day and add a night
  2. Search
  3. Filter 5 stars and sort price low to high
  4. Open Palm Grove Resort and select the Deluxe Room
  5. Add breakfast
  6. Enter guest details, choose Pay now with card 4242… and accept the policy
  7. Confirm booking

Expected: Processing overlay, then a confirmation with an SE- reservation id and Deluxe Room

5Business rules & validations

  • Search validationBeginner

    Search with no destination or date shows error-city and error-checkin.

  • Steppers & date chipsBeginner

    nights-inc / guests-inc change the summary; pick checkin-day by index.

  • Filters & sortingIntermediate

    Combine star-*, max-price (range), amenity-* and sort; assert result-count and price order.

  • Room capacityIntermediate

    With 3+ guests the Standard room is disabled and shows room-standard-capacity.

  • Live price summaryIntermediate

    addon-* checkboxes update price-addons, price-taxes and price-total.

  • Checkout validationIntermediate

    Submit empty to get form-errors and error-* per field; Pay at hotel hides card fields.

  • Async confirmationAdvanced

    confirm-booking shows a processing overlay (~1.5s) before booking-confirmed.

  • Cancel with reasonAdvanced

    cancel-<id> opens cancel-modal; a reason is required before confirm-cancel.

6Test data & credentials

URL
/apps/hotel
Login
not required
Taxes
12%
Card
any 16 digits

7Glossary

Add-ons
Breakfast, airport pickup, late checkout — change the price summary live
Room capacity
Standard rooms are disabled for 3+ guests
Pay at hotel
Hides card fields; booking confirms without card data

8Watch-outs for automation

  • ⚠️Confirm booking shows a processing overlay (~1.5 s) before confirmation
  • ⚠️Price summary recalculates on every add-on — assert totals after each change
  • ⚠️Steppers have min/max bounds (nights 1–14)

9Suggested test strategy

1 · Smoke

3

P1 positive and end-to-end cases — run on every build.

2 · Regression

15

All cases, incl. 4 negative and 3 edge — run before release.

3 · End-to-end

3

Full user journeys — run nightly.

Start with these smoke cases

  • STAYEASE-01 — Book a hotel end to end
  • STAYEASE-E2E-01 — Search, filter and book a hotel
  • STAYEASE-E2E-02 — Book then cancel from My reservations