import { LoginPage } from '@admin-lib/index';
import { Utility } from '@utility-lib/index';
import { TravelerModal } from '../lib/traveler-info';
import { Provider_Type, User_Type } from '@support-onboard/index';
import dayjs from 'dayjs';
import { createPassport } from '@support-user/index';

describe('Trips: Profile: Traveler Info', () => {
  beforeEach(() => {
    LoginPage.createNewCompanyAndLoginWithUserByType({
      providers: [Provider_Type.EXPEDIA_FLIGHT, Provider_Type.ALL_CAR],
      users: [User_Type.TRAVELER]
    });
    Utility.visitSearchPage();
    TravelerModal.interceptApis(3, 'travelerInfo');
  });

  it('C127183: Verify traveler information can be updated', { tags: ['@tier1'] }, () => {
    cy.reload();
    TravelerModal.getTravelerInfo();
    TravelerModal.createNewTravelerInfo('Personal', 'MALE', 30);
    TravelerModal.compareTravelerInfo();
  });

  it(
    'C127184 C127246: Verify passport information can be updated',
    { tags: ['@tier2'] },
    () => {
      const passport = createPassport();
      const passportCountry = 'Israel';
      const passportIssueDate = dayjs(passport.issuedOn).format('MMDDYYYY');
      const passportExpiredDate = dayjs(passport.expiresOn).format('MMDDYYYY');
      TravelerModal.updatePassportInfo({
        country: passportCountry,
        issue: passportIssueDate,
        expire: passportExpiredDate,
        number: passport.number
      });
      TravelerModal.verifyUpdatedPassportInfo({
        country: passportCountry,
        issue: passportIssueDate,
        expire: passportExpiredDate,
        number: passport.number
      });
    }
  );
});
