UNPKG

qe-fe-automation

Version:
89 lines (74 loc) 2.74 kB
import { LoginPage } from '@admin-lib/index'; import { bookingData } from '@fixtures/travelxen/booking_data'; import { TravelXenInterceptApis } from '@travelxen-lib/api-intercept'; import { stagingUsers } from '@fixtures/staging-users'; import { User_Type } from '@support-onboard/index'; import { AdminInterceptsApis } from '@admin-lib/api-intercept'; import { TravelXenHomePage } from '@travelxen-lib/pages'; const { agentChat } = stagingUsers; const agentCreds = Cypress.env('agent').AGENT_PASSWORD; const selectors = { oktaLogin: 'input[type="text"]', oktaSubmit: 'input[data-type="save"]', oktaPassword: 'input[type="password"]', oktaSubmitPassword: 'input[data-type="save"]' }; export const createBookingForTheCompany = () => { LoginPage.createHotelBookingForOnBoardingCompany(bookingData); }; export const prepareTravelXenEnv = () => { LoginPage.createNewCompanyAndLoginWithUserByType({ companySuffix: '-travelxen', users: [User_Type.ADMIN] }); LoginPage.clearExistingLoginSession(); AdminInterceptsApis.interceptAdminsApis(); TravelXenInterceptApis.interceptTravelxenApis(); TravelXenInterceptApis.interceptPaymentMethodsApis(); }; export const prepareTravelXenVIPEnv = () => { LoginPage.createNewCompanyAndLoginWithUserByType({ companySuffix: '-travelxen', users: [User_Type.ADMIN], vip: true }); createBookingForTheCompany(); LoginPage.clearExistingLoginSession(); AdminInterceptsApis.interceptAdminsApis(); TravelXenInterceptApis.interceptTravelxenApis(); TravelXenInterceptApis.interceptPaymentMethodsApis(); }; export const visitTravelxen = () => { cy.visit('/app/travelxen2'); }; export const visitAgentDesktop = () => { cy.visit(agentChat.oktaUrl); cy.get(selectors.oktaLogin).type(agentChat.email); cy.get(selectors.oktaSubmit).click(); cy.get(selectors.oktaPassword).type(agentCreds, { log: false }); cy.get(selectors.oktaSubmitPassword).click(); cy.intercept('GET', /api\/chat\/v1\/agent\/workers/).as('agentLogin'); loginToTwilio(); cy.wait('@agentLogin'); cy.wait(['@getSplits', '@getAgencies', '@getDropdownOptions']); }; export const getLastMessageInView = () => { return cy.get('[data-testid="chat-message"]').last(); }; const loginToTwilio = () => { cy.window().then((win) => { cy.stub(win, 'open') .as('popup') .callsFake((url) => { win.location.href = url; }); }); }; export const openCreatedUserDetails = () => { TravelXenHomePage.retrieveCreatedUserAndSearchByEmail(); TravelXenHomePage.selectUserFromSearchResult(); }; export const openCreatedBookingDetails = () => { TravelXenHomePage.retrieveCreatedBookingAndSearchById(); TravelXenHomePage.selectBookingFromSearchResult(); };