qe-fe-automation
Version:
FE test automation framework using cypress
83 lines (70 loc) • 2.78 kB
text/typescript
import { Provider_Type } from '@support-onboard/index';
const ON = 'on';
export class SplitUtility {
public static checkOnlyRelevantSplitIsOn(providers: Provider_Type[]): void {
providers.forEach((value) => {
this.checkSplit(this.getSplitNameByProvider(value), true);
});
}
public static isSplitOn(splitName: string): Cypress.Chainable<boolean> {
return cy.task('getDataFromCache', 'splitList').then((splitList: any) => {
return splitList[splitName] === ON;
});
}
private static checkSplit(splitName: string, isOn: boolean): void {
if (this.isSplitsObjectExist()) {
this.isSplitOn(splitName).then((res) => {
expect(isOn, 'User should be support on ' + splitName).to.equal(res);
});
}
}
private static isSplitsObjectExist(): Cypress.Chainable<boolean> {
return cy.task('getDataFromCache', 'splitList').then((splitList: any) => {
return splitList?.length > 0;
});
}
private static getSplitNameByProvider(provider: Provider_Type): string {
switch (provider) {
case Provider_Type.MOCK_FLIGHT:
return 'FLIGHT_PROVIDER_MOCK';
case Provider_Type.AMADEUS_FLIGHT:
return 'FLIGHT_PROVIDER_AMADEUS';
case Provider_Type.FARELOGIX_FLIGHT:
return 'FLIGHT_PROVIDER_FARELOGIX';
case Provider_Type.SABRE_FLIGHT:
return 'FLIGHT_PROVIDER_SABRE';
case Provider_Type.AMTRAK_RAIL:
return 'TRAIN_INVENTORY_FAKEPROVIDER_ALL';
case Provider_Type.EXPEDIA_FLIGHT:
return 'FLIGHT_PROVIDER_EXPEDIA';
case Provider_Type.NDC_EXCHANGE_FLIGHT:
return 'FLIGHT_PROVIDER_NDC_EXCHANGE';
case Provider_Type.PRICELINE_FLIGHT:
return 'FLIGHT_PROVIDER_PRICELINE';
case Provider_Type.SOUTHWEST_FLIGHT:
return 'FLIGHT_PROVIDER_SOUTHWEST';
case Provider_Type.TRAVELFUSION_FLIGHT:
return 'FLIGHT_PROVIDER_TRAVELFUSION';
case Provider_Type.VERTEIL_FLIGHT:
return 'FLIGHT_PROVIDER_VERTEIL';
case Provider_Type.ALL_CAR:
return 'CAR_PROVIDER_PRICELINE';
case Provider_Type.CAR_PROVIDER_AMADEUS:
return 'CAR_PROVIDER_AMADEUS';
case Provider_Type.EXPEDIA_HOTEL:
return 'HOTEL_PROVIDER_EXPEDIA';
case Provider_Type.PRICELINE_HOTEL:
return 'HOTEL_PROVIDER_PRICELINE';
case Provider_Type.TRAIN_FAKE_PROVIDER:
return 'TRAIN_INVENTORY_FAKEPROVIDER_ALL';
case Provider_Type.TRAIN_FAKE_PROVIDER_CARRIER:
return 'TRAIN_INVENTORY_FAKEPROVIDER_FAKECARRIER_1';
case Provider_Type.TRAIN_OVER_FLIGHTS:
return 'TRAIN_OVER_FLIGHTS';
case Provider_Type.TRAIN_INVENTORY_TRAINLINE_OUIGO:
return 'TRAIN_INVENTORY_TRAINLINE_OUIGO';
default:
return '';
}
}
}