UNPKG

qe-fe-automation

Version:
88 lines (84 loc) 2.19 kB
import { LoginPage } from '@admin-lib/login'; import { Provider_Type, User_Type } from '@support-onboard/index'; import { TrainInterceptApis, TrainProvider, TrainSearch, TrainTripType } from '@train-lib/index'; import { Timeouts } from '@utility-lib/constants'; interface CompanyCreationConfig { companySuffix?: TrainProvider | string; split?: Provider_Type; multipleTravelers?: boolean; providers?: Provider_Type[]; users?: User_Type[]; phoneNumber?: string; feeModelInfo?: string; } export class TrainSearchModalUtil { static createCompanyWithProviderName(config: CompanyCreationConfig): void { TrainInterceptApis.interceptTrainApis(); const { companySuffix, split, multipleTravelers = false, users, phoneNumber, feeModelInfo } = config; const providers = split ? [split] : []; LoginPage.createNewCompanyAndLoginWithUserByType({ providers, companySuffix, users, phoneNumber, feeModelInfo }); if (multipleTravelers) { cy.log('Create new traveler'); LoginPage.createNewTravelerAndLogin(); } } static executeTrainSearch(options: { origin: string; destination: string; tripType: TrainTripType; dbSeat?: boolean; multipleTravelers?: boolean; isConcierge?: boolean; date?: boolean; guestTraveler?: boolean; }): void { const { origin, destination, tripType, multipleTravelers, isConcierge = false, date = false, guestTraveler = false } = options; TrainSearch.visitTrainSearch('Business'); if (multipleTravelers) { cy.wait(Timeouts.SHORT_TIMEOUT_2_SEC.timeout); TrainSearch.addTraveler(); } if (guestTraveler) { cy.log('Create guest traveler'); TrainSearch.createGuestTraveler(); } TrainSearch.selectTripTileType(tripType); TrainSearch.setOrigin(origin); TrainSearch.setDestination(destination); if (date) { TrainSearch.selectTodayDate(); } else { TrainSearch.selectFutureTrainDate(); } if (!isConcierge) { cy.log('Search for train'); TrainSearch.searchTrain(); } } }