26 lines
1.6 KiB
Gherkin
26 lines
1.6 KiB
Gherkin
@admin @lifecycle
|
|
Feature: Booking lifecycle — rule-based cron assertions
|
|
Verifies each cron rule fires against pre-seeded bookings whose dates are
|
|
computed relative to today in testReset, so the rules always trigger.
|
|
|
|
Background:
|
|
Given I am logged in as "christina@seminarhof.example" with password "admin1234"
|
|
|
|
# ── R1: contract + deposit email ────────────────────────────────────────
|
|
Scenario: lifecycle R1 — cron sends contract and deposit email to a reserved booking
|
|
# b_lc_reserved: reserved, no contractSentAt, startDate 200 days away
|
|
Then the lifecycle cron sent 1 contracts
|
|
And the audit log for "b_lc_reserved" includes "Vertrag & Anzahlungsrechnung"
|
|
|
|
# ── R2: deposit reminder ─────────────────────────────────────────────────
|
|
Scenario: lifecycle R2 — cron sends deposit reminder when deposit is 7+ days unpaid
|
|
# b_lc_contract_sent: contractSentAt 8 days ago, deposit invoice unpaid
|
|
Then the lifecycle cron sent 1 reminders
|
|
And the audit log for "b_lc_contract_sent" includes "Anzahlungserinnerung"
|
|
|
|
# ── R4: auto-complete ────────────────────────────────────────────────────
|
|
Scenario: lifecycle R4 — cron auto-completes a confirmed booking after it ends
|
|
# b_lc_confirmed: confirmed, endDate yesterday
|
|
Then the lifecycle cron completed 2 bookings
|
|
And the booking "b_lc_confirmed" has status "Beendet"
|