qe-fe-automation
Version:
FE test automation framework using cypress
88 lines (79 loc) • 3.94 kB
text/typescript
import { Timeouts } from '@utility-lib/index';
import { AmplitudeEvents } from './amplitude-events';
const companySetupSelectors = {
setUpCompanyContinue:
'.ta-sticky-footer ta-button-v2[class^="ta-sticky-footer__save-button"] button',
setUpCompanySkip:
'.ta-sticky-footer ta-button-v2[class^="ta-sticky-footer__cancel-button"] button',
closeHrIntegrationSuggestion: 'ta-button-v2#closeReminder',
bookTravel: 'ta-button-v2[text="Book travel"] button',
adminExperienceModal: 'ta-modal[class^="ta-company-onboarded-admin-modal"]',
exploreAdminDashboard: 'ta-button-v2[text="Explore admin dashboard"] button',
scheduleCallButton: '[data-testid="adminModalScheduleCallButton"]',
adminModalContinueAndCloseButton: '[data-testid="adminModalContinueButton"]',
chilipiperModal: '#chilipiper-frame',
viewAllBenefitsExpanderButton: '[data-testid="viewAllBenefits"]',
viewLessBenefitsCollapseButton: '[data-testid="viewLessBenefits"]',
inviteAdminXButton: '[data-testid="inviteAdmin"] > .ta-button-v2',
goBackToAdminClaimedButton: '[data-testid="goBackToAdminClaimed"]',
closeInviteAdminModalButton: '[data-testid="modal-header-close-button"]',
inviteAdminModalGoToBookButton: '[data-testid="skipSendInviteAdminButton"]',
navanVideo: '[data-testid="navanVideo"]',
cardByNumber: (cardNumber: number) => {
return '[data-testid="card-' + cardNumber + '"]';
}
};
export class CompanySetup {
static companySetupPolicy(): void {
cy.allure().logStep('Configure company policy');
cy.wait('@waitForAdminPolicies');
for (let click = 0; click <= 7; click++) {
cy.get(companySetupSelectors.setUpCompanyContinue)
.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout)
.click();
}
cy.wait('@waitForSetupPolicy');
AmplitudeEvents.addExpectedAmplitudeEvents(
'admin open policy step',
'admin select savings policy clicked'
);
}
static verifyNavanVideoAndKeyBenefitsCardsExist(): void {
cy.allure().logStep('verify Navan video and key benefits cards exist');
cy.get(companySetupSelectors.navanVideo).should('be.visible');
cy.wait(Timeouts.SHORT_TIMEOUT_2_SEC.timeout);
const numberOfCards = 5; // this number will adjust based on needs, i.e.: number of cards
const cardSelectors: string = Array.from({ length: numberOfCards }, (_, index) =>
companySetupSelectors.cardByNumber(index)
).join(', ');
cy.get(cardSelectors).should('be.visible');
}
static verifyNavanVideoAndKeyBenefitsCardsExistMobileWeb(): void {
cy.allure().logStep('verify Navan video and key benefits cards exist on mobile-web');
if (cy.get(companySetupSelectors.viewAllBenefitsExpanderButton).should('exist')) {
cy.get(companySetupSelectors.viewAllBenefitsExpanderButton).click();
}
cy.get('[data-testid="navanVideo"]').should('be.visible');
cy.wait(Timeouts.SHORT_TIMEOUT_2_SEC.timeout);
const numberOfCards = 5; // this number will adjust based on needs, i.e.: number of cards
const cardSelectors: string = Array.from({ length: numberOfCards }, (_, index) =>
companySetupSelectors.cardByNumber(index)
).join(', ');
cy.get(cardSelectors).should('be.visible');
}
static openAndCloseInviteAdminModal(): void {
cy.allure().logStep('open and close invite admin modal');
cy.get(companySetupSelectors.inviteAdminXButton).click();
cy.get(companySetupSelectors.closeInviteAdminModalButton).click();
}
static skipAdminClaim(): void {
cy.allure().logStep('open and skip invite admin modal');
cy.get(companySetupSelectors.inviteAdminXButton).click();
cy.get(companySetupSelectors.inviteAdminModalGoToBookButton).click();
}
static openAndCloseInviteAdminModalMobileWeb(): void {
cy.allure().logStep('open and close invite admin modal');
cy.get(companySetupSelectors.inviteAdminXButton).click();
cy.get(companySetupSelectors.goBackToAdminClaimedButton).click();
}
}