qe-fe-automation
Version:
FE test automation framework using cypress
72 lines (60 loc) • 2.4 kB
text/typescript
const selectors = {
tab: '[data-testid="flightDiscountsTabGlobalPref"]',
addAirlineButton: '[data-testid="addAirlinePreferenceButton"]',
airlinesInput: '[data-testid="airlineMultiSelectInput"]',
airlinesOption: 'mat-option',
saveChangesButton: '[data-testid="saveFlightGlobalPrefButton"]',
airlinesTableRow: '[data-testid="globalFlightPreferencesTable"] .mat-row',
deleteButtonTable: '[data-testid="tableDeleteButton"]',
deleteButtonModal: '[data-testid="discountsModalDeleteButton"]'
};
const interceptors = {
globalAirlines: 'api/admin/airline-preferred-routes/global'
};
export class FlightPreferencesGlobal {
static visitGlobalPrefPage(): void {
cy.visit('app/admin2//settings/discounts/airlines');
cy.get(selectors.tab).click();
}
static addAirlinePreference(airline: string): void {
FlightPreferencesGlobal.clickAddAirlineButton();
FlightPreferencesGlobal.addAirline(airline);
FlightPreferencesGlobal.clickSaveChangesButton();
}
static verifyAirlineAdded(airline: string): void {
cy.get(selectors.airlinesTableRow).contains(airline).should('be.visible');
}
static deleteAirlinePreference(airline: string): void {
FlightPreferencesGlobal.clickDeleteButtonTable(airline);
FlightPreferencesGlobal.clickDeleteButtonModal();
}
static verifyAirlineDeleted(airline: string): void {
cy.contains(airline).should('not.exist');
}
private static clickAddAirlineButton(): void {
cy.get(selectors.addAirlineButton).click();
}
private static addAirline(airline: string): void {
cy.get(selectors.airlinesInput).type(airline);
cy.get(selectors.airlinesOption, { timeout: 10000 })
.should('be.visible')
.contains(airline)
.click();
}
private static clickSaveChangesButton(): void {
cy.intercept('POST', interceptors.globalAirlines).as('saveGlobalAirlines');
cy.get(selectors.saveChangesButton).contains('Save changes').click();
cy.wait('@saveGlobalAirlines');
}
private static clickDeleteButtonTable(airline: string): void {
cy.get(selectors.airlinesTableRow)
.contains(airline)
.get(selectors.deleteButtonTable)
.click();
}
private static clickDeleteButtonModal(): void {
cy.intercept('DELETE', interceptors.globalAirlines).as('deleteGlobalAirlines');
cy.get(selectors.deleteButtonModal).click();
cy.wait('@deleteGlobalAirlines');
}
}