UNPKG

qe-fe-automation

Version:
542 lines (489 loc) 23.2 kB
import { Timeouts } from '@utility-lib/constants'; import { AdminClaim } from '@growth-lib/admin-claim'; import { OnboardByApi } from './onboard-by-api'; import { BillingEntity } from '@growth-lib/billing-entity'; import { ONBOARDING_GUIDE_SELECTORS, VerifyType, TasksId, TaskState, ONBOARDING_GUIDE_USER_SELECTORS, URL_VERIFY } from './onboarding-guide.utils'; import { HttpRequest } from 'cypress/artifacts'; import { Logs } from '@utility-lib/log'; export class OnboardingGuide { static cyGetElement(selector: string): Cypress.Chainable<any> { return cy.get('body').then((body) => { const onboardingGuideIframeId = '#onboarding-guide'; if (body.find(onboardingGuideIframeId).length > 0) { cy.frameLoaded(onboardingGuideIframeId); return cy .iframe(onboardingGuideIframeId) .find(selector) .then(($elem) => { if ($elem.length > 0) { return cy.iframe(onboardingGuideIframeId).find(selector); } return cy.wrap(null); }); } else { if (body.find(selector).length > 0) { return cy.get(selector, { timeout: Timeouts.SHORT_TIMEOUT_5_SEC.timeout }); } return cy.wrap(null); } }); } static openOnboardingGuide(): void { Logs.logToCypressAndAllure('### openOnboardingGuide'); OnboardingGuide.verifyOnboardingGuideCTAExist(); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.onboardingGuideDrawer).then(($elem) => { if (!$elem.is(':visible')) { Logs.logToCypressAndAllure('### openOnboardingGuide (drawer not visible - click CTA)'); cy.get(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideButton).click(); // needs to be cy.get - do not change OnboardingGuide.waitForGetTasks(); OnboardingGuide.verifyOnboardingGuideDrawerOpen(); } }); } static verifyOnboardingGuideOpen(): void { Logs.logToCypressAndAllure('### verifyOnboardingGuideOpen'); OnboardingGuide.waitForGetTasks(); OnboardingGuide.verifyOnboardingGuideCTAExist(); OnboardingGuide.verifyOnboardingGuideDrawerOpen(); } static verifyOnboardingGuideCTAExist(): void { Logs.logToCypressAndAllure('### verifyOnboardingGuideCTAExist'); OnboardingGuide.printUserDetails(); const onboardingGuideIframeId = '#onboarding-guide'; cy.frameLoaded(onboardingGuideIframeId); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); cy.get(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideButton).then(($cta) => { if ($cta.length > 0) { Logs.logToCypressAndAllure('### verifyOnboardingGuideCTAExist -> exist'); cy.get(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideButton).should('exist'); } else { Logs.logToCypressAndAllure('### verifyOnboardingGuideCTAExist -> not exist'); cy.wait(Timeouts.MEDIUM_TIMEOUT_10_SEC.timeout); cy.get(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideButton).should('exist'); } }); } static verifyOnboardingGuideDrawerOpen(): void { Logs.logToCypressAndAllure('### verifyOnboardingGuideDrawerOpen'); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.onboardingGuideDrawer).then(($drawer) => { if ($drawer.is(':visible')) { Logs.logToCypressAndAllure(`### verifyOnboardingGuideOpen (drawer visible)`); OnboardingGuide.verifySkeletonTasksCompleted(); } else { Logs.logToCypressAndAllure(`### RE-verifyOnboardingGuideOpen (drawer not visible)`); OnboardingGuide.openOnboardingGuide(); } }); } static verifySkeletonTasksCompleted(): void { Logs.logToCypressAndAllure(`### verifySkeletonTasksCompleted`); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideHeaderTitle).then(($title) => { if (!$title) { Logs.logToCypressAndAllure(`### verifySkeletonTasksCompleted (skeleton visible)`); cy.wait(Timeouts.MEDIUM_TIMEOUT_10_SEC.timeout); } Logs.logToCypressAndAllure(`### verifySkeletonTasksCompleted (title visible)`); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideHeaderTitle, 'be.visible'); }); } static waitForGetTasks(): void { Logs.logToCypressAndAllure(`### waitForGetTasks`); cy.wait('@waitForGetTasks'); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); } static clickOn(selector: string): void { Logs.logToCypressAndAllure(`*** click on: ${selector}`); OnboardingGuide.cyGetElement(selector).click(); } static verify(selector: string, verify: VerifyType = 'be.visible'): void { Logs.logToCypressAndAllure(`*** verify: ${selector}`); OnboardingGuide.cyGetElement(selector).should(verify); } static verifyLockedTask(selector: string, verify: VerifyType = 'be.visible'): void { Logs.logToCypressAndAllure(`*** verifyLockedTask: ${selector} - ${verify}`); OnboardingGuide.cyGetElement(selector).find('.ta-icon[icon="lock-filled"]').should(verify); } static verifyTaskDisable(selector: string): void { Logs.logToCypressAndAllure(`*** verifyTaskDisable: ${selector}`); OnboardingGuide.cyGetElement(selector).should('have.css', 'pointer-events', 'none'); } static checkUrl(url: URL_VERIFY): void { Logs.logToCypressAndAllure(`*** check url: ${url}`); cy.url().should('include', url); } static printUserDetails(): void { cy.window() .its('localStorage') .invoke('getItem', 'bueno') .then((bueno: string | null) => { if (bueno) { const buenoObject = JSON.parse(bueno); const keys = [ 'companyUuid', 'dateSignupCompleted', 'email', 'growthSelfSellState', 'growthSelfSellCompany', 'accountType', 'companySelfOnboardingAccountSegment' ]; const data = keys.reduce((acc, key) => { const value = buenoObject?.userInfo?.[key] || ''; cy.allure().logStep(`${key}: ${value}`); return { ...acc, [key]: value }; }, {}); cy.log(`*** ${JSON.stringify(data)}`); console.log(data); console.info(`%c ${buenoObject?.userInfo?.['email']}`, 'background: black; color: lightgreen'); } }); } static closeOnboardingGuide(): void { Logs.logToCypressAndAllure(`*** closeOnboardingGuide`); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.closeOnboardingGuideXButton).then(($btn) => { if ($btn) { $btn.click(); cy.wait(Timeouts.SHORT_TIMEOUT_1_SEC.timeout); } }); } static updateTask({ taskId, state }: { taskId: string; state: string }) { Logs.logToCypressAndAllure(`*** updateTask: ${taskId} to ${state}`); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.closeOnboardingGuideXButton).then(($button) => { if ($button.length > 0) { $button.click(); } cy.request({ method: HttpRequest.Post, url: `api/selfSetup/task/update`, body: { id: taskId, state }, headers: { Authorization: 'TripActions ' + (AdminClaim.interceptedToken.replace('TripActions ', '') || OnboardByApi.ONBOARD_TOKEN.replace('TripActions ', '')) }, retryOnStatusCodeFailure: false }).then((response) => { expect(response.status).to.eq(200); }); }); } static closeOnboardingGuideForever(): void { Logs.logToCypressAndAllure(`*** closeOnboardingGuideForever`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.closeOnboardingGuideForeverButton); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.closeOnboardingGuideForeverButtonInPopup); } static terminateOnboardingGuide(): void { Logs.logToCypressAndAllure(`*** terminateOnboardingGuide`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.closeOnboardingGuideForever(); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideButton, 'not.exist'); } static checkPageReviewTravelPolicy(): void { Logs.logToCypressAndAllure(`*** checkPageReviewTravelPolicy`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToTravelTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedReviewTravelPolicy); OnboardingGuide.checkUrl(URL_VERIFY.POLICY_WIZARD); } static checkPageSetUpTravelPaymentMethod(): void { Logs.logToCypressAndAllure(`*** checkPageSetUpTravelPaymentMethod`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToTravelTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedSetupTravelPaymentMethod); OnboardingGuide.checkUrl(URL_VERIFY.SETTINGS_PAYMENTS); } static checkPageAddAndInviteUsers(): void { Logs.logToCypressAndAllure(`*** checkPageAddAndInviteUsers`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.addUsersTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedAddAndInviteUsers); OnboardingGuide.checkUrl(URL_VERIFY.USERS); } static checkPageAddCorporateCard(): void { Logs.logToCypressAndAllure(`*** checkPageAddCorporateCard`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.addCorporateCard); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.addCorporateCardGetStartedButton); OnboardingGuide.checkUrl(URL_VERIFY.CARD_PROGRAMS); } static checkAddressAndAddCard(): void { Logs.logToCypressAndAllure(`*** checkAddressAndAddCard`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.addressGetStartedButton); OnboardingGuide.checkUrl(URL_VERIFY.BILLABLE_ENTITIES); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.checkPageAddCorporateCard(); } static checkPageReviewExpensePolicy(): void { Logs.logToCypressAndAllure(`*** checkPageReviewExpensePolicy`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.reviewExpensePolicyTask); } static checkPageSetAccountingPreferences(): void { Logs.logToCypressAndAllure(`*** checkPageSetAccountingPreferences`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.setSetAccountingPreferencesButton); OnboardingGuide.checkUrl(URL_VERIFY.INTEGRATION); } static getReadyToExpense(): void { Logs.logToCypressAndAllure(`*** getReadyToExpense`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.checkPageReviewExpensePolicy(); OnboardingGuide.checkUrl(URL_VERIFY.POLICY_ONBOARDING_V2); cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout); OnboardingGuide.checkPageSetAccountingPreferences(); } static completeGetReadyToTravel(): void { Logs.logToCypressAndAllure(`*** completeGetReadyToTravel`); OnboardingGuide.checkPageReviewTravelPolicy(); OnboardingGuide.checkPageSetUpTravelPaymentMethod(); } static clickOnboardingGuideGetMoreTasksButton(): void { Logs.logToCypressAndAllure(`*** clickOnboardingGuideGetMoreTasksButton`); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.getMoreAccordion).then(($btn) => { if ($btn) { OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getMoreAccordion); } cy.wait(Timeouts.SHORT_TIMEOUT_2_SEC.timeout); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.getMoreHeader).last().scrollIntoView(); cy.wait(Timeouts.SHORT_TIMEOUT_2_SEC.timeout); }); } static verifyOnboardingGuideGetMoreTasks(): void { Logs.logToCypressAndAllure(`*** verifyOnboardingGuideGetMoreTasks`); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.getConnectCorporateCard); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.getSetUpReimbursments); } static clickThumbsDownButtonAndSubmitFeedback(): void { Logs.logToCypressAndAllure(`*** clickThumbsDownButtonAndSubmitFeedback`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.faqThumbsDownButton); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.faqThumbsDownTextbox).type('feedback test'); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.faqThumbsDownSubmitButton); } static fillAllOnboardingTasks(isExepsneUser = false): void { Logs.logToCypressAndAllure(`*** fillAllOnboardingTasks`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedReviewTravelPolicy); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedSetupTravelPaymentMethod); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.reviewTravelPolicyMarkAsDone); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.setUpTravelPaymentMethodMarkAsDone); if (isExepsneUser) { Logs.logToCypressAndAllure(`*** fillAllOnboardingTasks isExepsneUser`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.reviewExpensePolicyTask); OnboardingGuide.checkUrl(URL_VERIFY.POLICY_ONBOARDING_V2); cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.reviewExpensePolicyTaskMarkAsDone); } OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedAddAndInviteUsers); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.updateTask({ taskId: TasksId.ADD_USERS, state: TaskState.COMPLETED }); OnboardingGuide.updateTask({ taskId: TasksId.COMPLETE_FIRST_BOOKING, state: TaskState.COMPLETED }); } // TODO: check ??? static clickOnHomePage() { Logs.logToCypressAndAllure(`*** clickOnHomePage`); return cy.get(ONBOARDING_GUIDE_SELECTORS.topLeftMainMenu).click(); } static verifyTaskCompleted(selector: string): void { Logs.logToCypressAndAllure(`*** verifyTaskCompleted ${selector}`); OnboardingGuide.cyGetElement(selector).find('.ta-icon[icon="check"]').should('be.visible'); } static checkOnboardingGuideForTravelAdmin(): void { Logs.logToCypressAndAllure(`*** checkOnboardingGuideForTravelAdmin`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.verifyTaskCompleted(ONBOARDING_GUIDE_SELECTORS.addUsersTask); OnboardingGuide.verifyLockedTask(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseBadge); OnboardingGuide.verifyTaskDisable(ONBOARDING_GUIDE_SELECTORS.reviewExpensePolicyGetStartedButton); OnboardingGuide.verifyTaskDisable(ONBOARDING_GUIDE_SELECTORS.setSetAccountingPreferencesButton); } static checkOnboardingGuideForExpenseAdmin(): void { Logs.logToCypressAndAllure(`*** checkOnboardingGuideForExpenseAdmin`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.verifyTaskCompleted(ONBOARDING_GUIDE_SELECTORS.addUsersTask); OnboardingGuide.verifyLockedTask(ONBOARDING_GUIDE_SELECTORS.getReadyToTravelTask); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.getReadyToTravelBadge); OnboardingGuide.verifyTaskDisable(ONBOARDING_GUIDE_SELECTORS.getStartedReviewTravelPolicy); OnboardingGuide.verifyTaskDisable(ONBOARDING_GUIDE_SELECTORS.getStartedSetupTravelPaymentMethod); OnboardingGuide.verifyLockedTask(ONBOARDING_GUIDE_SELECTORS.bookTheFirstTripTask); } /* User onboarding guide */ static verifyUserOnboardingTasks(): void { Logs.logToCypressAndAllure(`*** verifyUserOnboardingTasks`); OnboardingGuide.verify(ONBOARDING_GUIDE_USER_SELECTORS.addTravelerInfo, 'exist'); OnboardingGuide.verify(ONBOARDING_GUIDE_USER_SELECTORS.addLoyaltyPrograms, 'exist'); OnboardingGuide.verify(ONBOARDING_GUIDE_USER_SELECTORS.learnAboutRewards, 'exist'); OnboardingGuide.verify(ONBOARDING_GUIDE_USER_SELECTORS.completeFirstBooking, 'exist'); } static fillAllUserOnboardingTasks(): void { Logs.logToCypressAndAllure(`*** fillAllUserOnboardingTasks`); OnboardingGuide.startUserTasks(); OnboardingGuide.completeUserTasks(); } static startUserTasks(): void { Logs.logToCypressAndAllure(`*** startUserTasks`); OnboardingGuide.verifyElementTextAndClick(ONBOARDING_GUIDE_USER_SELECTORS.addLoyaltyProgramsButton, 'Get started'); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.verifyElementTextAndClick(ONBOARDING_GUIDE_USER_SELECTORS.addTravelerInfoButton, 'Get started'); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.verifyElementTextAndClick(ONBOARDING_GUIDE_USER_SELECTORS.learnAboutRewardsButton, 'Get started'); OnboardingGuide.openOnboardingGuide(); } static completeUserTasks(): void { Logs.logToCypressAndAllure(`*** completeUserTasks`); OnboardingGuide.verifyElementTextAndClick( ONBOARDING_GUIDE_USER_SELECTORS.loyaltyCompleteCompleteCta, 'Mark as done' ); OnboardingGuide.verifyElementTextAndClick(ONBOARDING_GUIDE_USER_SELECTORS.travelerInfoCompleteCta, 'Mark as done'); OnboardingGuide.verifyElementTextAndClick( ONBOARDING_GUIDE_USER_SELECTORS.learnAboutRewardsCompleteCta, 'Mark as done' ); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.updateTask({ taskId: TasksId.COMPLETE_FIRST_BOOKING, state: TaskState.COMPLETED }); } static verifyElementTextAndClick(onboardingGuideSelector: string, ctaText: string): void { Logs.logToCypressAndAllure(`*** verifyElementTextAndClick`); OnboardingGuide.cyGetElement(onboardingGuideSelector).should('contain', ctaText); OnboardingGuide.clickOn(onboardingGuideSelector); cy.wait(Timeouts.SHORT_TIMEOUT_1_SEC.timeout); } static pressSkipThisInGetReadyToExpenseFromAdmin(): void { Logs.logToCypressAndAllure(`*** pressSkipThisInGetReadyToExpenseFromAdmin`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseSkipThisButton); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.checkMarkInSetAccountingPreferences, 'exist'); } static completeAddAddressTask(): void { Logs.logToCypressAndAllure(`*** completeAddAddressTask`); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.addressGetStartedButton); OnboardingGuide.checkUrl(URL_VERIFY.LEGAL_ADDRESS); BillingEntity.fillBillingEntityForm(); cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout); OnboardingGuide.checkUrl(URL_VERIFY.BILLABLE_ENTITIES); } static checkLiquidPagesOnboardingGuide(): void { Logs.logToCypressAndAllure(`*** checkLiquidPagesOnboardingGuide`); function checkPageSubmitFirstExpense(): void { Logs.logToCypressAndAllure(`*** checkPageSubmitFirstExpense`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.submitFirstExpenseGetStartedButton); OnboardingGuide.checkUrl(URL_VERIFY.ALL_TRANSACTIONS); cy.contains('button', 'Done').click(); } function checkPageNavanConnect(): void { Logs.logToCypressAndAllure(`*** checkPageNavanConnect`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOnboardingGuideGetMoreTasksButton(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.connectCorporateCardLearnMoreButton); OnboardingGuide.checkUrl(URL_VERIFY.CARD_PROGRAMS); } function checkPageSetUpReimbursments(): void { Logs.logToCypressAndAllure(`*** checkPageSetUpReimbursments`); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.clickOnboardingGuideGetMoreTasksButton(); OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.reimbursementsLearnMoreButton); } OnboardingGuide.completeAddAddressTask(); cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout); OnboardingGuide.getReadyToExpense(); checkPageSubmitFirstExpense(); checkPageNavanConnect(); checkPageSetUpReimbursments(); } static completeTasksByAPI(taskIds: TasksId[] = []): void { Logs.logToCypressAndAllure(`*** completeTasksByAPI`); let hasSubTasks; taskIds.forEach((taskId: TasksId) => { hasSubTasks = false; OnboardingGuide.openOnboardingGuide(); switch (taskId) { case TasksId.COMPLETE_FIRST_BOOKING: OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.completeFirstBooking); break; case TasksId.APPLY_FOR_NAVAN_CARDS: OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.addNavanConnectProgramButton); break; case TasksId.ADD_USERS: OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.addUsersTask); break; case TasksId.CONNECT_CORPORATE_ACCOUNT_PROGRAM: OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.addCorporateCard); break; case TasksId.GET_READY_TO_TRAVEL: hasSubTasks = true; OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToTravelTask); cy.wait(Timeouts.SHORT_TIMEOUT_1_SEC.timeout); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.getStartedReviewTravelPolicy).then(($elem) => { if ($elem) { OnboardingGuide.updateTask({ taskId: TasksId.REVIEW_AND_EDIT_POLICY_FOR_TRAVEL, state: TaskState.COMPLETED }); } }); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.getVTravelPaymentMethodButton).then(($elem) => { if ($elem) { OnboardingGuide.updateTask({ taskId: TasksId.SET_UP_TRAVEL_PAYMENT, state: TaskState.COMPLETED }); } }); break; case TasksId.GET_READY_TO_EXPENSE: hasSubTasks = true; OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask); cy.wait(Timeouts.SHORT_TIMEOUT_1_SEC.timeout); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.reviewExpensePolicyGetStartedButton).then(($elem) => { if ($elem) { OnboardingGuide.updateTask({ taskId: TasksId.REVIEW_AND_EDIT_POLICY_FOR_EXPENSE, state: TaskState.COMPLETED }); } }); OnboardingGuide.openOnboardingGuide(); OnboardingGuide.cyGetElement(ONBOARDING_GUIDE_SELECTORS.setSetAccountingPreferencesButton).then(($elem) => { if ($elem) { OnboardingGuide.updateTask({ taskId: TasksId.SYNC_ACCOUNTING_SOFTWARE, state: TaskState.COMPLETED }); } }); break; } if (!hasSubTasks) { OnboardingGuide.updateTask({ taskId, state: TaskState.COMPLETED }); } }); } }