UNPKG

qe-fe-automation

Version:
77 lines (68 loc) 3.13 kB
import { Utility, Timeouts } from '@utility-lib/index'; import { CarInvoiceValidation } from '@commerce-lib/cars/invoice_validation'; import { Invoice } from '@commerce-lib/invoice/invoice'; import { CommerceShared } from '@commerce-shared-lib/shared'; const rentalCarSelector = { itineraryBody: '.itinerary__content-body__item', carName: '.ta-trip-event-car-details__title', checkInDate: 'div[class$="ta-trip-event-car-details__labels"]:contains("Check-in")+div', checkOutDate: 'div[class$="ta-trip-event-car-details__labels"]:contains("Check-out")+div', tripactionsBookingId: 'div[class$="ta-trip-event-car-booking__labels"]:contains("TripActions")+div', manageItinerary: '[class^="ta-trip-card-v2__actions"] .ta-button__content', itineraryListDate: '[qaid="itineraryListDate"]', roomTypeDetails: '[class^="ta-trip-event-car-room-details__link ta-button ta-button--link-theme"]', carDetailHeader: '.ta-modal-header', roomOverview: '.room-details', cancelCar: '[qaid="eventActionCancelCar"]', downLoadInvoice: '[qaid="eventActionDownloadInvoice"]', creditCardCheckIn: '[class^="trip-car__payment-title"]', carBookingId: '.trip-event-card-car-list__content ng-star-inserted' }; export class RentalCarItinerary { static waitToBeLoaded(): void { cy.url().then((url) => { const getUrl = url; cy.log('<<< CAR Itinerary URL is >>>: ' + getUrl); cy.task('putDataInCache', { key: 'ItineraryURL', data: getUrl }); }); } static visitItinerary() { cy.intercept('GET', /api\/v2\/trip\/car\/search\/suggestions/).as('waitForTripItinerary'); Utility.selectNavItem('TRIPS'); cy.wait('@waitForTripItinerary'); cy.allure().logStep('visit itinerary'); } static viewAndManageItinerary() { cy.get(rentalCarSelector.manageItinerary).click(); cy.wait('@waitForManageItinerary'); cy.allure().logStep('view and manage itinerary'); } static expectNoItineraryIsPresent(noOfItineraries: number) { cy.get(rentalCarSelector.itineraryListDate, Timeouts.MAX_TIMEOUT_120_SEC).should('have.length', noOfItineraries); cy.allure().logStep(`expect ${noOfItineraries} itinerary is present`); } static expectCarDetailPageIsPresent() { cy.get(rentalCarSelector.roomTypeDetails).click(); cy.get(rentalCarSelector.roomOverview).should('be.visible'); } static cancelCar() { Utility.cancelTrip('Car'); Utility.selectCancellationReason('Change of plans'); //cy.wait(Timeouts.MEDIUM_TIMEOUT_20_SEC.timeout); Utility.confirmCancellation(); Utility.expectCancelledLabelIsPresent(); } static verifyTripFeeInInvoice(): void { CarInvoiceValidation.checkInvoiceBookingId(); CommerceShared.visitViewInvoicePage(); Invoice.retrieveDownloadInvoiceFile(); Invoice.retrieveAndConvertPDFInvoiceDetailsToHTML(); CarInvoiceValidation.checkInvoiceTAFee(); CarInvoiceValidation.checkInvoiceTripeFee(); CarInvoiceValidation.checkInvoiceBookingId(); //TODO StripeValidation.validateStripeFee(); //! This is not working as expected https://navancorp.atlassian.net/browse/QTA-3005 } }