qe-fe-automation
Version:
FE test automation framework using cypress
173 lines (154 loc) • 7.81 kB
text/typescript
const adminGeneralPageSelectors = {
spendSummary: 'app-spend-summary',
pageTitle: '[qaid=pageTitle]',
analysisTabButton: '[data-qaid=ANALYSIS-button]',
travelSpendMenuItem: '[qaid=ANALYSIS_SPEND-menu-item]',
travelSpendTotalValue: '[qaid="Travel spend__value"]',
flightsMenuItem: '[qaid=ANALYSIS_FLIGHTS-menu-item]',
flightSpendTotalValue: '[qaid="Flights spend__value"]',
hotelsMenuItem: '[qaid=ANALYSIS_HOTELS-menu-item]',
hotelsSpendTotalValue: '[qaid="Hotels spend__value"]',
carbonMenuItem: '[qaid=ANALYSIS_EMISSIONS-menu-item]',
carbonTotalSpendValues: '[qaid=CO2_EMISSIONS__value]',
wellbeingMenuItem: '[qaid=ANALYSIS_WELLBEING-menu-item]',
totalNightsAwayValue: '[qaid=TOTAL_NIGHTS_AWAY__value]',
reportsTabButton: '[data-qaid=REPORTS-button]',
bookingsMenuItem: '[qaid=BOOKINGS-menu-item]',
bookingReportInvoiceColumn: '[qaid=table-column-bookingUuid]',
reconcileMenuItem: '[qaid=RECONCILE-menu-item]',
reconcileStatementCard: '[qaid=reconcile-statement-card]',
reconcileHistoryCard: '[qaid=history-card]',
rewardsMenuItem: '[qaid=REWARDS-menu-item]',
rewardsTransactionReport: '[qaid=tripBucksReportTitle]',
unusedCreditsMenuItem: '[qaid=UNUSED_TICKETS-menu-item]',
unusedCreditsReportDownloadButton: '[qaid=downloadButton]',
safetyTabButton: '[data-qaid=SAFETY-button]',
covid19MenuItem: '[qaid=COVID19-menu-item]',
covid19StatusTitle: '[qaid=covid19StatusTitle]',
travelImpactMenuItem: '[qaid=TRAVEL_IMPACT-menu-item]',
numberOfTravelers: '[qaid=travelersValue]',
liveMapMenuItem: '[qaid=LIVE_MAP-menu-item]',
liveMapSubtitle: '[qaid=live-map-subtitle]',
travelerReportMenuItem: '[qaid=TRAVELER_REPORT-menu-item]',
showTravelersButton: '[qaid=show-travelers-button]',
settingTabButton: '[data-qaid=SETTINGS-button]',
integrationsMenuItem: '[data-qaid=INTEGRATIONS]',
apiCredentialsCardTitle: '[qaid=api-credentials-card-title]',
expenseIntegrationCardTitle: '[qaid=expense-integration-card-title]',
rewardsExportCsvButton: '[data-qaid=exportRewardsCsv]',
travelAdminNavButton: '[data-qaid="ADMIN-button"]',
tmcIntegrationCardTitle: '[qaid=tmc-integration-card-title]'
};
export class AdminGeneralCheck {
static visitAdminDashboardPage() {
cy.allure().logStep('Verify Admin dashboard page is loaded');
cy.visit('app/admin2/en/dashboard');
cy.url().should('include', '/dashboard');
}
private static elementShouldBeVisible(...elements: string[]) {
elements.forEach((element) => {
cy.get(element).should('be.visible');
});
}
static checkTravelAdminNavPresence() {
cy.allure().logStep('Verify Travel Admin button is present on the page');
this.elementShouldBeVisible(adminGeneralPageSelectors.travelAdminNavButton);
}
static checkSpendOverviewPresence() {
cy.allure().logStep('Verify Spend Summary card is loaded on Admin dashboard screen');
this.elementShouldBeVisible(adminGeneralPageSelectors.spendSummary);
}
static checkTravelSpendPagePresence() {
cy.allure().logStep('Verify Analysis -> Travel Spend page is loaded');
cy.get(adminGeneralPageSelectors.analysisTabButton).click();
cy.get(adminGeneralPageSelectors.travelSpendMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.travelSpendTotalValue);
}
static checkFlightsPagePresence() {
cy.allure().logStep('Verify Analysis -> Flights page is loaded');
cy.get(adminGeneralPageSelectors.analysisTabButton).click();
cy.get(adminGeneralPageSelectors.flightsMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.flightSpendTotalValue);
}
static checkHotelsPagePresence() {
cy.allure().logStep('Verify Analysis -> Hotels page is loaded');
cy.get(adminGeneralPageSelectors.analysisTabButton).click();
cy.get(adminGeneralPageSelectors.hotelsMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.hotelsSpendTotalValue);
}
static checkCO2PagePresence() {
cy.allure().logStep('Verify Analysis -> Carbon page is loaded');
cy.get(adminGeneralPageSelectors.analysisTabButton).click();
cy.get(adminGeneralPageSelectors.carbonMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.carbonTotalSpendValues);
}
static checkTravelerWellBeingPagePresence() {
cy.allure().logStep('Verify Analysis -> Traveler Well-being page is loaded');
cy.get(adminGeneralPageSelectors.analysisTabButton).click();
cy.get(adminGeneralPageSelectors.wellbeingMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.totalNightsAwayValue);
}
static checkBookingReportPagePresence() {
cy.allure().logStep('Verify Reports -> Booking report page is loaded');
cy.get(adminGeneralPageSelectors.reportsTabButton).click();
cy.get(adminGeneralPageSelectors.bookingsMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.bookingReportInvoiceColumn);
}
static checkReconcilePagePresence() {
cy.allure().logStep('Verify Reports -> Reconcile page is loaded');
cy.get(adminGeneralPageSelectors.reportsTabButton).click();
cy.get(adminGeneralPageSelectors.reconcileMenuItem).click();
this.elementShouldBeVisible(
adminGeneralPageSelectors.reconcileStatementCard,
adminGeneralPageSelectors.reconcileHistoryCard
);
}
static checkRewardsPagePresence() {
cy.allure().logStep('Verify Reports -> Rewards page is loaded');
cy.get(adminGeneralPageSelectors.reportsTabButton).click();
cy.get(adminGeneralPageSelectors.rewardsMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.rewardsExportCsvButton);
}
static checkUnusedCreditsPagePresence() {
cy.allure().logStep('Verify Reports -> Unused Credits page is loaded');
cy.get(adminGeneralPageSelectors.reportsTabButton).click();
cy.get(adminGeneralPageSelectors.unusedCreditsMenuItem).click();
this.elementShouldBeVisible(
adminGeneralPageSelectors.unusedCreditsReportDownloadButton
);
}
static checkCovid19PagePresence() {
cy.allure().logStep('Verify Savefy -> Covid19 page is loaded');
cy.get(adminGeneralPageSelectors.safetyTabButton).click();
cy.get(adminGeneralPageSelectors.covid19MenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.covid19StatusTitle);
}
static checkTravelImpactDashboardPagePresence() {
cy.allure().logStep('Verify Savefy -> Travel Impact dashboard page is loaded');
cy.get(adminGeneralPageSelectors.safetyTabButton).click();
cy.get(adminGeneralPageSelectors.travelImpactMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.numberOfTravelers);
}
static checkLiveMapPagePresence() {
cy.allure().logStep('Verify Savefy -> Live Map page is loaded');
cy.get(adminGeneralPageSelectors.safetyTabButton).click();
cy.get(adminGeneralPageSelectors.liveMapMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.liveMapSubtitle);
}
static checkTravelerReportPresence() {
cy.allure().logStep('Verify Savefy -> Traveler Report page is loaded');
cy.get(adminGeneralPageSelectors.safetyTabButton).click();
cy.get(adminGeneralPageSelectors.travelerReportMenuItem).click();
this.elementShouldBeVisible(adminGeneralPageSelectors.showTravelersButton);
}
static checkIntegrationsPagePresence() {
cy.allure().logStep('Verify Settings -> Integration page is loaded');
cy.get(adminGeneralPageSelectors.settingTabButton).click();
cy.get(adminGeneralPageSelectors.integrationsMenuItem).click();
this.elementShouldBeVisible(
adminGeneralPageSelectors.apiCredentialsCardTitle,
adminGeneralPageSelectors.expenseIntegrationCardTitle,
adminGeneralPageSelectors.tmcIntegrationCardTitle
);
}
}