import {
  TrainSearchModalUtil,
  TrainTripType,
  SncfBookingParams,
  TrainBookingManager,
  TrainItinerary,
  CheckoutModal
} from '@train-lib/index';

describe('Train: SNCF oneway multiple traveler Seat selection using SeatMap', () => {
  it(
    'C473860: Should be able to select a seat using a seat map and book a train ticket',
    { tags: ['@sncf', '@all_train_test', '@france'] },
    () => {
      const oneWay = TrainTripType.ONEWAY;

      TrainSearchModalUtil.createCompanyWithProviderName({
        multipleTravelers: true
      });

      TrainSearchModalUtil.executeTrainSearch({
        tripType: TrainTripType.ONEWAY,
        origin: SncfBookingParams.Location.Paris,
        destination: SncfBookingParams.Location.Lyon,
        multipleTravelers: true
      });

      TrainBookingManager.selectCancelOrExchangeTripAndProcessForCheckout({
        tripType: oneWay,
        trainClass: true,
        fareType: SncfBookingParams.FareType.FIRST_CLASS
      });

      CheckoutModal.checkout({
        noOfTravelers: 2,
        seatMap: true,
        tripType: oneWay,
        multipleTravelers: true
      });

      TrainItinerary.expectMultiTravellerSeatMapDetailsArePresent();
      TrainItinerary.expectETicketIsDownloadable();
    }
  );
});
