qe-fe-automation
Version:
FE test automation framework using cypress
59 lines (54 loc) • 1.47 kB
text/typescript
import {
TrainInterceptApis,
TrainSearchModalUtil,
AgencyCurrency,
TrainTripType,
TrainBookingManager,
CheckoutModal,
TrainItinerary,
DeutscheBahnBookingParams,
ItaloBookingParams,
TrenItaliaBookingParams,
SncfBookingParams
} from '@train-lib/index';
interface TrainBookingOptions {
loyaltyCard: string;
provider: any;
origin: string;
destination: string;
}
const fareTypeMapping: { [key: string]: any } = {
'Deutsche Bahn': DeutscheBahnBookingParams.FareType.STANDARD,
Italo: ItaloBookingParams.FareType.STANDARD,
TrenItalia: TrenItaliaBookingParams.FareType.STANDARD,
Sncf: SncfBookingParams.FareType.STANDARD
};
export class AutoTrainCard {
static bookTrainWithAutoAddedLoyaltyCard({
loyaltyCard,
provider,
origin,
destination
}: TrainBookingOptions) {
TrainInterceptApis.interceptTrainApis();
TrainSearchModalUtil.createCompanyWithProviderName({
feeModelInfo: AgencyCurrency.Euro
});
cy.getUserLoyaltyProgramMemberships();
TrainSearchModalUtil.executeTrainSearch({
origin,
destination,
tripType: TrainTripType.ONEWAY
});
const fareType = fareTypeMapping[provider];
TrainBookingManager.selectStandardFareAndProcessForCheckout({
tripType: TrainTripType.ONEWAY,
fareType,
loyaltyCard: true
});
CheckoutModal.checkout({
loyaltyCard: true
});
TrainItinerary.expectLoyaltyCardDetailsArePresent(loyaltyCard);
}
}