import { eventData } from '@fixtures/event/event_data';
import {
  CreateEvent,
  EventsWorkflow,
  Invitations,
  TeamEventsInterceptApis
} from '@group-events-lib/index';
import {
  TrainSearch,
  TrainSearchResults,
  TrainCheckout,
  TrainInterceptApis,
  JourneyType,
  FakeProviderStations
} from '@train-lib/index';

describe('GME: Team event: train booking', () => {
  it('C51001: FE - Book a train in the Team event', { tags: ['@tier1'] }, () => {
    EventsWorkflow.createCompanyAndTeamEvents();
    TrainInterceptApis.interceptTrainApis();
    TeamEventsInterceptApis.teamEventIntercept();

    CreateEvent.openSearchPage();
    Invitations.verifyInvitationName(eventData.eventName);

    CreateEvent.selectTeamEventVertical('train');
    TrainSearch.selectJourneyType(JourneyType.ONE_WAY);
    TrainSearch.setOrigin(FakeProviderStations.DepartureStation);
    TrainSearch.setDestination(FakeProviderStations.DestinationStation);

    TrainSearch.searchTrain();
    TrainSearchResults.expectSearchResultPresent();
    TrainSearchResults.proceedToCheckoutPage();

    TrainCheckout.acceptAcknowledgement();
    TrainSearchResults.reviewAndContinueIfOutsideOfTravelWindowChanged();
    TrainCheckout.bookTrain();
  });
});
