import { FlightBookingUtility, FlightUtility } from '@flight-modal/index';
import { Utility } from '@utility-lib/index';
import { LoginPage } from '@admin-lib/index';
import { Provider_Type, User_Type } from '@support-onboard/index';
import { stagingUsers } from '@fixtures/staging-users';
import { FlightInterceptApis, FlightItinerary, FlightTripType } from '@flight-lib/index';
import { Invoice } from '@commerce-lib/invoice/invoice';
import { FlightsInvoiceValidation } from '@commerce-lib/flights/invoice_validation';
import { CommerceApiIntercepts } from '@commerce-shared-lib/index';
import { ContactModal } from '@profile-lib/contact-info';
import { UserModal } from '@profile-lib/user-modal';

const adminCreds = Cypress.env('newUser').NEW_USER_PASSWORD;
const adminCredentials = Cypress.env('superAdmin').SUPER_ADMIN_PASSWORD;
const checkInType = ' Add EarlyBird Check-In® ';
const number = 14155754531;

describe('Commerce: Austria | FLIGHT | Sabre | VAT/GST', () => {
  beforeEach(() => {
    CommerceApiIntercepts.interceptCommerceApis();
    cy.loginWithAuthToken({
      email: stagingUsers.superAdmin.email,
      password: adminCredentials,
      isSA: true
    });
    LoginPage.createNewCompanyAndLoginWithUserByType({
      providers: [Provider_Type.SABRE_FLIGHT],
      users: [User_Type.ADMIN],
      creditCardInfo: FlightUtility.getDefaultCreditCardInfoForVisa()
    });
    FlightInterceptApis.interceptFlightsApis();
  });
  it('C7990238: Austria/Vergin | VAT/GST | Validations', { tags: ['@tier1'] }, () => {
    UserModal.addPhoneNumber(number);
    FlightBookingUtility.runBookingFlow(
      FlightBookingUtility.initFlightBookingParams({
        locations: ['SYD', 'MEL'],
        flightTripType: FlightTripType.ONEWAY,
        tripTileType: 'Business',
        checkInType: checkInType,
        continueIfNoResultFound: false
      })
    );
    FlightUtility.syncSabreFlight();
    Invoice.forceSyncAPI();
    Utility.loginAsAdmin(adminCreds);
    FlightItinerary.goToItineraryPage();
  });
});
