import { FlightTripType } from '@flight-lib/search';
import { BookingUtility } from '@chat-lib/booking-model';
import { Directions, FlightBookingData } from '@chat-lib/booking';
import { ChatBox } from '@chat-lib/index';
import { FlightBookingParams, FlightBookingUtility } from '@flight-modal/index';
import { ItineraryValidation } from '@commerce-lib/trains/invoice_validations';
import { LocationUtility } from '@utility-lib/location';

describe('Chat: Flight booking', () => {
  it.skip(
    'C7447619: Ava IQ asks about current trip on itinerary',
    { tags: ['@tier2'] },
    () => {
      const flightBookingParams: FlightBookingParams =
        FlightBookingUtility.initFlightBookingParams({
          locations:
            LocationUtility.getPairOfOriginAndDestinationAirportsUSWithShortName(),
          flightTripType: FlightTripType.ONEWAY,
          tripTileType: 'Business'
        });
      const departureShort = flightBookingParams.locations[0].substring(0, 3);
      const arrivalShort = flightBookingParams.locations[1].substring(0, 3);
      const flightBookingData: FlightBookingData = {
        flightBookingParams: flightBookingParams,
        departingFrom: Directions.FROM,
        arrivingAt: Directions.TO,
        isChangeFlight: false
      };
      const daysToMove = { daysToMove: 5, daysAfterMovedDays: 0 };

      BookingUtility.createFlightBookingAndClearSession(flightBookingData, daysToMove, 1);
      ItineraryValidation.visitTripsPage('trips');
      ItineraryValidation.selectFirstTrip();
      ChatBox.openChat();
      ChatBox.closeChat();
      ChatBox.confirmCloseChat();
      ChatBox.closeChat();
      ChatBox.openChatWithAva();
      ChatBox.expectMsgReceivedFromAva('Are you chatting in about your');
      ChatBox.expectMsgReceivedFromAva(`Flight ${departureShort}`);
      ChatBox.expectMsgReceivedFromAva(`${arrivalShort} booking?`);
    }
  );
});
