import { stagingUsers } from '@fixtures/staging-users';
import { Invoice } from '@commerce-lib/invoice/invoice';
import { FlightsInvoiceValidation } from '@commerce-lib/flights/invoice_validation';
import { localizationData } from '@fixtures/commerce/localization_data';
import { ledgerRequests } from '@fixtures/commerce/ledger_requests';

const GSTUserPassword = Cypress.env('login').SABRE_PASSWORD;
const tf_boarding = localizationData.flight.tf_priorityBoarding;
const bookingUuid = tf_boarding.bookingUuID;
const tripUrl = tf_boarding.trip_url;
const boardingRequestBody = ledgerRequests.TF_BOARDING;
const bookingRequestBody = ledgerRequests.TF_BOOKING;

describe('Commerce: TF | Booking | Priority boarding | Invoice | Validations', () => {
  it(
    'C10249669: TravelFusion Flight Booking Priority boarding invoice validations',
    { tags: ['@tier1'] },
    () => {
      cy.clearAllByBookingUuid(bookingUuid);
      cy.archiveByBookingUUID(bookingUuid);
      cy.bookingDataInLedger(bookingRequestBody);
      cy.bookingDataInLedger(boardingRequestBody);
      cy.forceSyncAPI(bookingUuid);
      cy.forcePDFSyncAPI(bookingUuid);
      cy.getLedgerData(bookingUuid);
      cy.loginWithAuthToken({
        email: stagingUsers.india_tds_user.email,
        password: GSTUserPassword,
        isSA: true
      });
      FlightsInvoiceValidation.visitItineraryPage(tripUrl);
      FlightsInvoiceValidation.visitViewTripFeePage();
      Invoice.retrieveDownloadInvoiceFileWithBookingID(bookingUuid);
      //Skipping this test - Invoice. retrieveAndConvertPDFInvoiceDetailsToHTML();
      FlightsInvoiceValidation.validateTFFlightPriorityBoardingDetails();
      Invoice.deleteFileFromFolderByBookingId(bookingUuid);
    }
  );
});
