🏨 Hotel App
Comprehensive booking system for testing complex business workflows, data relationships, and reservation management
Overview
The Hotel App simulates a real hotel booking platform with properties, room types, reservations, and reviews. Test complex relationships between entities and booking workflows.
What You Can Test
- Properties: Create and manage hotel properties
- Room Types: Define rooms with prices, amenities, availability
- Bookings: Create reservations, manage check-in/out dates
- Reviews: Guest ratings and comments for properties
- Chaos Lab: Test error handling with controlled failures
Requirements & Fields
Property Fields
name- string, required, max 200 charslocation- string, requiredrating- decimal, 0-5 starsdescription- text, optional
Room Type Fields
property_id- UUID, required (links to property)name- string (Standard, Deluxe, Suite)price- decimal, per nightcapacity- integer, max guestsamenities- array ["wifi", "tv", "minibar"]is_available- boolean
Booking Fields
room_type_id- UUID, requiredcheck_in- date, requiredcheck_out- date, required, after check_inguests- integer, min 1status- string (pending, confirmed, checked_in, completed, cancelled)
Review Fields
property_id- UUID, requiredrating- integer, 1-5comment- text, optional
Test Case Examples
TC-001: Create Property
Objective: Verify hotel property can be created
Steps:
- Send POST request to
/api/hotel/properties - Include valid data (name, location, rating)
- Verify response status 201
- Verify property returned with generated ID
Expected: Property created successfully
TC-002: Create Booking with Valid Date Range
Objective: Verify booking can be created with valid dates
Steps:
- Create property and room type
- Send POST request with check_in = 2026-03-01, check_out = 2026-03-05
- Verify response status 201
- Verify booking dates are correct
Expected: Booking created with correct date range
TC-003: Invalid Date Range (Check-out Before Check-in)
Objective: Verify validation for invalid date ranges
Steps:
- Send POST request with check_out before check_in
- Verify response status 400
- Verify error message indicates invalid date range
Expected: Request rejected with validation error
TC-004: Test Room Availability Logic
Objective: Verify room availability status
Steps:
- Create room with is_available = true
- Get available rooms, verify room appears
- Update room to is_available = false
- Get available rooms, verify room doesn't appear
Expected: Availability filtering works correctly
TC-005: Booking Status Transitions
Objective: Verify booking can move through statuses
Steps:
- Create booking (status = pending)
- Update to status = confirmed
- Update to status = checked_in
- Update to status = completed
- Verify each transition succeeds
Expected: All valid status transitions work
TC-006: Review Rating Validation
Objective: Verify review ratings must be 1-5
Steps:
- Send POST request with rating = 6
- Verify response status 400
- Send request with rating = 0
- Verify response status 400
- Send request with rating = 3 (valid)
- Verify response status 201
Expected: Only ratings 1-5 accepted
TC-007: Property-Room Relationship
Objective: Verify rooms are linked to correct property
Steps:
- Create Property A
- Create 3 rooms for Property A
- Get Property A details
- Verify response includes 3 rooms
Expected: Property shows all associated rooms
Chaos Lab Testing
The Hotel App includes Chaos Lab for testing error handling:
- Random 500 Errors: Simulate server failures
- Timeout Scenarios: Test request timeouts
- Rate Limiting: Verify throttling behavior
- Data Corruption: Test invalid response handling
Access Chaos Lab via the 🎲 button in the Hotel App UI to configure failure scenarios.