import { LoginPage } from '@admin-lib/index';
import {
  Hotels,
  HotelCheckout,
  HotelSearchResults,
  HotelItinerary
} from '@hotel-lib/index';
import { User_Type } from '@support-onboard/index';
import { createBookHotelData } from '@fixtures/hotel/booking_data';
import { Timeouts } from '@utility-lib/index';
import { Itinerary } from '../../../../personal_travel/lib';

describe('Hotel: existing trip', () => {
  it(
    'C151458: verify booking is successful adding trip to the existing trip',
    { tags: ['@tier1'] },
    () => {
      Hotels.prepareCompanyAndUserCreation(User_Type.TRAVELER);
      LoginPage.createHotelBookingForOnBoardingCompany(createBookHotelData());

      const hotel = 'Hotel';
      HotelItinerary.visitItinerary();
      HotelItinerary.viewAndManageItinerary();
      HotelItinerary.addNewTripInCurrentItinerary(hotel);
      Itinerary.clickFindAvailability();
      HotelSearchResults.selectHotel(0);
      HotelSearchResults.selectRoomOption();
      cy.wait(Timeouts.SHORT_TIMEOUT_3_SEC.timeout);
      //! after removing wait test were failing while loading the page
      HotelCheckout.checkoutFLow('Business');
      HotelCheckout.expectHotelBookedSuccessfully('Hotel confirmed!');
      HotelItinerary.verifyHotelItineraryPage();
      HotelItinerary.expectNoItineraryIsPresent(2);
    }
  );
});
