{
  "caseCount": 15,
  "cases": [
    {
      "id": "BKG-SEARCH-001",
      "title": "Load deterministic travel search",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Open Hotel and travel booking."
      ],
      "expectedResult": "The destination, dates, guests, scenario, and room results are visible.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-SEARCH-002",
      "title": "Search a destination",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Choose Mumbai and check availability."
      ],
      "expectedResult": "Mumbai rooms and a deterministic result summary are visible.",
      "priority": "High",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-SEARCH-003",
      "title": "Validate the stay dates",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Set check-out before check-in and check availability."
      ],
      "expectedResult": "The page explains that at least one night is required and sends no mutation.",
      "priority": "High",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-AVAIL-001",
      "title": "Show a limited-availability scenario",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Choose One room remaining and check availability."
      ],
      "expectedResult": "Only one selectable room remains and the state is visible.",
      "priority": "High",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-AVAIL-002",
      "title": "Show a sold-out scenario",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Choose Sold out and check availability."
      ],
      "expectedResult": "A controlled empty state explains that no synthetic rooms are available.",
      "priority": "Medium",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-ROOM-001",
      "title": "Select a room and rate",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Select an available room after a valid search."
      ],
      "expectedResult": "The room, rate, total, and enabled confirmation action are visible.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-BOOK-001",
      "title": "Confirm a synthetic booking",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Select a room, enter a fake guest name, and confirm."
      ],
      "expectedResult": "A session-scoped booking reference and confirmed status are visible.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-BOOK-002",
      "title": "Require a guest name",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Clear Guest name and submit confirmation."
      ],
      "expectedResult": "Native validation prevents a booking mutation.",
      "priority": "Medium",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-BOOK-003",
      "title": "List confirmed bookings",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Confirm a booking and inspect Your synthetic bookings."
      ],
      "expectedResult": "The newly confirmed booking appears in the API-backed table.",
      "priority": "High",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-CANCEL-001",
      "title": "Open cancellation modal",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Confirm a booking and choose Cancel confirmed booking."
      ],
      "expectedResult": "A labelled native dialog explains the session-only cancellation.",
      "priority": "High",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-CANCEL-002",
      "title": "Cancel a synthetic booking",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Accept Cancel booking in the cancellation dialog."
      ],
      "expectedResult": "The confirmation and table show cancelled status.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-RESET-001",
      "title": "Reset the travel sandbox",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Confirm a booking, then reset the travel sandbox."
      ],
      "expectedResult": "The deterministic booking seed returns and session-only changes are removed.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-API-001",
      "title": "Create a booking through the API",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Create a Lab session, retain CSRF, and POST a complete booking payload."
      ],
      "expectedResult": "The API returns a session-scoped bkg identifier and typed room/rate fields.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-API-002",
      "title": "Cancel through the API",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "PATCH a confirmed synthetic booking with status cancelled."
      ],
      "expectedResult": "The returned booking shows cancelled without any payment or supplier request.",
      "priority": "High",
      "goodAutomationCandidate": "yes"
    },
    {
      "id": "BKG-API-003",
      "title": "Isolate travel sessions",
      "route": "/practice/apps/bookings/",
      "preconditions": [
        "Use a fresh Practice Lab session with synthetic seed data."
      ],
      "steps": [
        "Create a booking in one explicit Lab session and query another."
      ],
      "expectedResult": "The second session cannot observe the first booking.",
      "priority": "Critical",
      "goodAutomationCandidate": "yes"
    }
  ]
}
