import { FlightBookingUtility } from '@flight-modal/index';
import { LoginPage } from '@admin-lib/login';
import { Provider_Type, User_Type } from '@support-onboard/index';
import { FlightInterceptApis, FlightItinerary, FlightTripType } from '@flight-lib/index';
import { FlightUpgrade } from '../../lib/flight_upgrade';
import { Timeouts } from '@utility-lib/constants';

const roundTripFlightBookingParams = FlightBookingUtility.initFlightBookingParams({
  locations: ['SJC', 'LAS'],
  flightTripType: FlightTripType.ROUNDTRIP,
  tripTileType: 'Business',
  continueIfNoResultFound: true
});
describe('Personal Travel: Flight upgrades from itinerary', () => {
  beforeEach(() => {
    LoginPage.createNewCompanyAndLoginWithUserByType({
      providers: [Provider_Type.SABRE_FLIGHT],
      users: [User_Type.ADMIN]
    });
    FlightInterceptApis.interceptFlightsApis();
    FlightUpgrade.runFlightBookingFlow(roundTripFlightBookingParams, 'Alaska Airlines');
  });
  it(
    'C14014510: Verify flight upgrade link is shown on the itinerary for web for eligible flights',
    { tags: ['@tier2'] },
    () => {
      FlightItinerary.goToItineraryPage();
      FlightItinerary.waitToBeLoaded();
      FlightUpgrade.flightUpgradeLinkVisible();
    }
  );

  it(
    'C14014511: Verify clicking on the upgrade flight link opens the flight upgrade modal',
    { tags: ['@tier2'] },
    () => {
      cy.wait(Timeouts.MEDIUM_TIMEOUT_30_SEC.timeout);
      FlightItinerary.goToItineraryPage();
      FlightItinerary.waitToBeLoaded();
      FlightUpgrade.clickFlightUpgradeLink();
      FlightUpgrade.flightUpgradeModalVisible();
    }
  );
});
