import { LoginPage } from '@admin-lib/index';
import { HotelCheckout, HotelInterceptApis, HotelSearchResults } from '@hotel-lib/index';
import { User_Type } from '@support-onboard/index';
import { Itinerary } from '../../../lib';
import { Random } from '@utility-lib/random';

describe('Personal Travel: Bleisure - Adding personal nights from trips', () => {
  beforeEach(() => {
    LoginPage.createNewCompanyAndLoginWithUserByType({
      users: [User_Type.PERSONAL_TRAVELER]
    });
    HotelInterceptApis.interceptHotelApis();
  });
  it(
    'C4604830: user should be able to extend stay at same hotel',
    { tags: ['@tier2'] },
    () => {
      Itinerary.createBusinessHotelBooking();
      Itinerary.extendSameHotel();
      HotelSearchResults.selectRoomOption();
      HotelCheckout.hotelCancellationAndChargePolicy();
      HotelCheckout.setPhoneNumber();
      HotelCheckout.updateEmailDetails(
        'personal-' + Random.randomString(12) + '@staging-prime.tripactions.xyz'
      );
      HotelCheckout.acceptAcknowledgement();
      HotelCheckout.bookNow();
      HotelCheckout.expectHotelBookedSuccessfully('Hotel confirmed!');
      Itinerary.verifyItinerary();
    }
  );

  it(
    'C4604831: user should be able to extend stay at different hotel',
    { tags: ['@tier2'] },
    () => {
      Itinerary.createBusinessHotelBooking();
      Itinerary.extendDifferentHotel();
      HotelSearchResults.selectHotel(1);
      HotelSearchResults.selectRoomOption();
      HotelCheckout.checkoutFLow('Personal');
      HotelCheckout.expectHotelBookedSuccessfully('Hotel confirmed!');
      Itinerary.verifyItinerary();
    }
  );
});
