import {
  Flights,
  FlightTripType,
  FlightSearchResults,
  FlightItinerary
} from '@flight-lib/index';
import { FlightUtility, FlightBookingUtility } from '@flight-modal/index';
import { LoyaltyPrograms } from '@profile-lib/loyalty_programs';
import { Provider_Type, User_Type } from '@support-onboard/index';
import { LocationUtility } from '@utility-lib/index';

describe('Flight: booking with Loyalty', () => {
  it(
    'C358335: Should able to book flight with loyalty club card',
    { tags: ['@tier1'] },
    () => {
      FlightUtility.prepareCompanyAndUserCreation(
        User_Type.ADMIN,
        Provider_Type.MOCK_FLIGHT
      );
      LoyaltyPrograms.visitProfileLoyaltyPrograms();
      Flights.addLoyaltyCard('SkyMiles', '1111116666');
      Flights.addLoyaltyCard('MileagePlus', '12345678');
      Flights.addLoyaltyCard('Rapid Rewards', '1234567');
      Flights.addLoyaltyCard('AAdvantage', '111111112');
      Flights.visitFlightSearchPage();
      const flightBookingParams = FlightBookingUtility.initFlightBookingParams({
        locations: LocationUtility.getPairOfOriginAndDestinationAirportsUS(),
        flightTripType: FlightTripType.ONEWAY,
        tripTileType: 'Business',
        checkInType: ' Continue without EarlyBird Check-In® '
      });
      FlightUtility.runSearchFlow(flightBookingParams);
      FlightSearchResults.addLoyaltyCardFilter();
      FlightUtility.runChooseMockOnewayResultFlow();
      FlightUtility.runCheckoutFlow(flightBookingParams);
      FlightUtility.runItineraryFlow();
      FlightItinerary.expectLoyaltyPointsIsPresent();
    }
  );
});
