| # | Action | Expected Result | Status | Evidence |
|---|---|---|---|---|
| 1 | Register new user | Account created, success flash message | Passed | Open |
| 2 | Register with existing email | Error “Email is already present” displayed | Passed | Open |
| 3 | Login with correct credentials | Redirect to homepage, “logged in” flash | Passed | Open |
| 4 | Login with wrong password | Error flash message shown, no login/pw | Passed | Open |
| 5 | Create booking (1–3 Oct) | Booking saved and listed under user | Passed | Open |
| 6 | Attempt overlapping booking | Validation error, prevented from saving | Passed | Open |
| 7 | Edit existing booking | Dates updated successfully | Passed | Open |
| 8 | Delete booking | Booking removed from list | Passed | Open |
| 9 | Access route without login | Redirected to login page | Passed | Open |
| 10 | Test Screen Reader Flash Message | Duplicate message is hidden | Failed | Open |
| 11 | Test Screen Reader Flash Message | Duplicate message is hidden | Passed | Open |
- All tests were performed on the live deployment at Flask Hotel on PythonAnywhere.
- Screenshots are saved in the
docs/img/folder.