import { GrowthInterceptApis } from '@growth-lib/api-intercept';
import { LoginSelfSell } from '@support-growth/login-self-sell';
import { SignUp } from '@growth-lib/sign-up';
import { LoginPage } from '@admin-lib/login';
import { DelegatePage } from '@growth-lib/delegate-page';
import { GrowthRegistrationUrls } from '@growth-lib/model';
import { OnboardByApi } from '@growth-lib/onboard-by-api';
import { SignupReason } from '../../../growth_common_lib';

const credentials = Cypress.env('newUser').NEW_USER_PASSWORD;
describe('Affiliate: new company on-boarding for delegate user', () => {
  let token: string;
  beforeEach(() => {
    GrowthInterceptApis.interceptApis();
    LoginSelfSell.createNewSelfSellLead({
      registrationUrl: GrowthRegistrationUrls.travel
    }).then((login) => {
      token = login.token;
    });
  });

  it(
    'C8357372: Web onboard as self sell user for delegate user - logout and login again and see delegate dashboard as landing page',
    { tags: ['@tier1'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, false);
      DelegatePage.verifyDelegateHomePageOpened();
      LoginPage.clearExistingLoginSession();
      DelegatePage.loginUserAfterLogout(credentials);
      DelegatePage.verifyDelegateHomePageOpened();
      OnboardByApi.deleteLastOnboardedCompany();
    }
  );

  it(
    'C10457205: Web onboard Delegate Dashboard shown with relevant UI - add traveler button,' +
      ' yellow badge, filters, Tab name as Travel Planner,  ' +
      'check that team offsite is going to home page, check BFO banner shown',
    { tags: ['@tier1'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, false);
      DelegatePage.verifyDelegateHomePageOpened();
      DelegatePage.closeWelcomeModal();
      DelegatePage.checkAddTravelerCenterButtonYellowMark();
      DelegatePage.verifyNavBarHasTravelPlanner();
      DelegatePage.checkFiltersShown();
      DelegatePage.verifyTeamOffsite();
      OnboardByApi.deleteLastOnboardedCompany();
    }
  );
});
