[
  {
    "id": "all-booked",
    "name": "Flight, hotel and car all confirm",
    "inputs": {
      "travellerId": "TR-1",
      "destination": "Lisbon"
    },
    "mocks": {
      "flight-book": {
        "outputs": {
          "confirmation": "FL-1"
        }
      },
      "hotel-book": {
        "outputs": {
          "confirmation": "HT-1"
        }
      },
      "car-book": {
        "outputs": {
          "confirmation": "CR-1"
        }
      },
      "traveller-notify": {}
    },
    "expect": {
      "path": [
        "book-flight",
        "book-hotel",
        "book-car",
        "trip-booked",
        "send-itinerary",
        "trip-confirmed"
      ],
      "variables": {
        "flightConfirmation": "FL-1",
        "carConfirmation": "CR-1"
      }
    }
  },
  {
    "id": "hotel-unavailable",
    "name": "No hotel: the flight is cancelled and the traveller told",
    "inputs": {
      "travellerId": "TR-2",
      "destination": "Lisbon"
    },
    "mocks": {
      "flight-book": {
        "outputs": {
          "confirmation": "FL-2"
        }
      },
      "hotel-book": {
        "outputs": {
          "confirmation": null
        }
      },
      "flight-cancel": {},
      "hotel-release": {},
      "traveller-notify": {}
    },
    "expect": {
      "path": [
        "book-hotel",
        "hotel-unavailable",
        "on-booking-failed",
        "cancel-flight",
        "trip-not-booked"
      ]
    }
  },
  {
    "id": "car-unavailable",
    "name": "No car: flight and hotel are both undone",
    "inputs": {
      "travellerId": "TR-3",
      "destination": "Lisbon"
    },
    "mocks": {
      "flight-book": {
        "outputs": {
          "confirmation": "FL-3"
        }
      },
      "hotel-book": {
        "outputs": {
          "confirmation": "HT-3"
        }
      },
      "car-book": {
        "outputs": {
          "confirmation": null
        }
      },
      "flight-cancel": {},
      "hotel-release": {},
      "traveller-notify": {}
    },
    "expect": {
      "path": [
        "book-car",
        "car-unavailable",
        "cancel-flight",
        "release-hotel",
        "trip-not-booked"
      ]
    }
  }
]
