qe-fe-automation
Version:
FE test automation framework using cypress
88 lines (84 loc) • 2.19 kB
text/typescript
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();
}
}
}