Guest booking flow
Generate slots, dates, typeahead, calculate, and confirmation asserts
Hypothetical booking form that mixes dynamic data, native date/time, typeahead city, and a calculated nights × rate line.
# guest-booking-flow.stk — generate + date + typeahead + calculate (hypothetical)
Platform: web
Group: Guest Booking
Scenario: Book a stay with generated guest data @smoke @booking
Given I navigate to "$BASE_URL/booking"
And I wait for "Guest email"
When I generate "@guest-email" as email domain "bookings.test"
And I generate "@guest-phone" as phone format "E164"
And I generate "@booking-ref" as regex "BK-[0-9]{6}"
And I generate "@pass" as password length "14"
And I generate "@check-in" as date after "1 day" timezone "UTC"
And I generate "@check-out" as date after "4 days" timezone "UTC"
And I generate "@meet" as time after "2 hours" timezone "UTC"
And I fill "Guest email" with "@guest-email"
And I fill "Confirm email" with "@guest-email"
And I fill "Guest phone" with "@guest-phone"
And I fill "Booking ref" with "@booking-ref"
And I fill "Guest password" with "@pass"
And I fill "Full name" with "{{name}}"
And I fill "Notes" with "Guest trip — see booking ref on confirm page"
When I type "San" in "Destination city" and pick "San Francisco"
And I pick "Deluxe" from "Room type"
And I open "Add-ons" and pick "Breakfast,Parking"
And I pick date "@check-in" in "Check-in date"
And I pick date "@check-out" in "Check-out date"
And I pick time "@meet" in "Arrival time"
Then I should have "Guest email" value "@guest-email" have "Confirm email" value "@guest-email" be equal
And I should have "Check-in date" value "@check-in" be enabled
When I generate "@nights" as number from "3" to "3"
And I generate "@rate" as number from "120" to "120"
And I fill "nights" with "@nights"
And I fill "nightly-rate" with "@rate"
And I calculate "@subtotal" as "@nights*@rate"
And I fill "line-subtotal" with "@subtotal"
Then I should have "line-subtotal" value "@subtotal" be enabled
And I should have "line-subtotal" be greater than "0"
When I click on "terms"
Then I should have "terms" be checked
When I click on "Request booking"
And I wait until not see "Submitting..."
And I wait for see "Booking requested"
Then I should see "Booking requested"
And I should see "@guest-email"
And I should see "@booking-ref"
And I should see "@subtotal"
And I should not see "Please fix the errors"
When I store "@@last-booking" from "booking-ref-display"
Then I should see "@@last-booking"
Scenario: Open booking summary from group slot @booking
Given I navigate to "$BASE_URL/bookings"
And I wait for "bookings"
When I click on "View" in row "@@last-booking"
And I wait for "Booking summary"
Then I should in "Booking summary" see "@@last-booking"
And I should in "Booking summary" see containing "San Francisco"
And I should have "status" be visibleCommands used
generate, fill, type, pick, open, pick date, pick time, should, calculate, click, wait, store, in row