UNPKG

qe-fe-automation

Version:
123 lines (112 loc) 5.12 kB
import { Timeouts, Utility, utilitySelector, Logs } from '@utility-lib/index'; export const createTripProposal = { setTripProposal: '.ta-co-side-navigation [href*="trip-proposal"]', setTripProposalNav: (getTripType: string) => `.ta-co-side-navigation [href*="${getTripType}"]`, enableTripProposal: '[columnid="combinedTargetAttr"]', triggerEnableButton: '[formcontrolname="combinedTargetAttr"] .mat-slide-toggle-thumb', tripName: 'input[formcontrolname="tripName"]', tripPurpose: 'input[formcontrolname="tripPurpose"]', hotelLocationInput: '[qaid="locationTypeaheadInput"] input', submit: 'button[type="submit"]', sendRequestToManager: '.cost-modal__footer .ta-button__content', saveChanges: 'button .ta-button__content', tripProposal: '[class^="trip-proposal__actions__submit"]', groupTravelTab: '[data-testid="groupTravelSubtab"]', bookingTypeVerticalDropdown: '.trip-proposal-form__actions button', bookingTypeVerticalOption: (verticalType: string) => `button[icon="booking-type-${verticalType}"]`, locationFieldSubtitle: (location: string) => `[aria-label="${location}"] [data-testid="locationFieldSubtitle"]`, disabledSubmitButton: '[class^="trip-proposal__actions__submit ta-button ta-button--disabled"]', removeLOB: '[class^="trip-proposal-form__top__remove"]', startBooking: '[class="upcoming-trip-card__actions"] button' }; const newUserCredentials = Cypress.env('newUser').NEW_USER_PASSWORD; type PolicyType = 'flights' | 'train' | 'hotel' | 'car' | 'black-car' | 'trip-proposal'; export class CreateProposal { static visitAdminPage() { cy.allure().logStep('visit admin page'); cy.visit('app/admin2/en/dashboard'); cy.wait(Timeouts.MEDIUM_TIMEOUT_10_SEC.timeout); } static selectPolicy() { cy.allure().logStep('select travel policy'); Utility.selectAdminNav('POLICY', 'TRAVEL_POLICY'); cy.wait('@waitForTravelPolicy'); } static selTripProposalEnabled() { cy.allure().logStep('enable trip proposal'); cy.get(createTripProposal.setTripProposal).click({ force: true }); this.selectPolicyType('trip-proposal'); cy.get(createTripProposal.enableTripProposal).first().click({ force: true }); cy.get(createTripProposal.triggerEnableButton).click({ force: true }); cy.get(createTripProposal.saveChanges).contains('Save changes').click({ force: true }); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); cy.wait('@waitForSaveTripProposalEnable').then((xhr) => { Logs.cypressResponseLog('TRIP PROPOSAL ENABLE PATCH RESPONSE', xhr); }); } static selectPolicyType(getTripType: PolicyType) { cy.allure().logStep(`select policy type ${getTripType}`); cy.get(createTripProposal.setTripProposalNav(getTripType)).click({ force: true }); } static visitNewTripProposalPage() { cy.allure().logStep('visit new trip proposal page'); Utility.visitSearchPage(); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); cy.get(utilitySelector.searchLocationInput).click({ force: true }); } static setBookingType(verticalType: string) { cy.allure().logStep(`selectVertical ${verticalType}`); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); cy.get(createTripProposal.bookingTypeVerticalDropdown).click(); cy.get(createTripProposal.bookingTypeVerticalOption(verticalType)).click(); } static setTripName() { cy.allure().logStep('set trip name'); cy.get(createTripProposal.groupTravelTab).should('not.be.hidden').should('be.visible'); cy.get(createTripProposal.tripName).type('Berlin Trip'); } static setTripReason() { cy.allure().logStep('set trip reason'); cy.get(createTripProposal.tripPurpose).type('Team Meeting'); } static setHotelLocation(location: string) { cy.allure().logStep(`set hotel location ${location}`); cy.get(createTripProposal.hotelLocationInput).type(`${location}`, { force: true }); cy.get(createTripProposal.locationFieldSubtitle(location)).click({ force: true }); } static sendProposal() { cy.allure().logStep(' send proposal'); cy.get(createTripProposal.tripProposal).click(); cy.wait('@waitForSubmitProposal').then((xhr) => { Logs.cypressResponseLog('SEND PROPOSAL RESPONSE', xhr); }); cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout); } static sendRequestToManager() { cy.allure().logStep('send request to manager'); cy.get(createTripProposal.sendRequestToManager).click({ force: true }); cy.wait('@waitForRequestSend').then((xhr) => { Logs.cypressResponseLog('Send REQUEST TO MANAGER RESPONSE', xhr); }); } static loginAsAdmin(password: any) { cy.clearLocalStorage(); cy.clearCookies(); cy.clearLocalStorage(); cy.task('getDataFromCache', 'companyCreationEmail').then((email: any) => { cy.loginWithAuthToken({ email, password }); }); } static loginAsTraveler() { cy.clearLocalStorage(); cy.clearCookies(); cy.clearLocalStorage(); cy.task('getDataFromCache', 'travelerEmail').then((email: any) => { cy.loginWithAuthToken({ email, password: newUserCredentials }); }); } }