StrikekitStrikekit

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 visible

Commands used

generate, fill, type, pick, open, pick date, pick time, should, calculate, click, wait, store, in row

On this page