import {
  AdminClaim,
  AmplitudeEvents,
  FreePricing,
  GrowthInterceptApis,
  LoginSelfSell,
  ONBOARDING_GUIDE_SELECTORS,
  OnboardingGuide,
  SignUp
} from '@growth-lib/index';
import { OnboardByApi } from '@growth-lib/onboard-by-api';
import { SignupReason } from '@growth-lib/persona';

describe('Growth: new company on-boarding', () => {
  let token: string;
  beforeEach(() => {
    GrowthInterceptApis.interceptApis();
    LoginSelfSell.createNewSelfSellLead().then((login) => {
      token = login.token;
    });
  });

  afterEach(() => {
    OnboardByApi.deleteLastOnboardedCompany();
  });

  it(
    'C5809349: Onboard as self sell user and finish company on-boarding',
    { tags: ['@tier1', '@onboardingGuideIndependent'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.TRAVEL_SOLUTION, false);

      FreePricing.verifyTravelPricingScreenIsOpened();
      FreePricing.openAdminClaim();
      OnboardingGuide.verifyOnboardingGuideOpen();
      OnboardingGuide.closeOnboardingGuide();
      AmplitudeEvents.expectAmplitudeEventsToBeSent();
    }
  );

  it(
    'C5809350: Onboard as self sell user and finish company on-boarding on Rogue flow',
    { tags: ['@tier1', '@onboardingGuideIndependent'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_TRIP, false);
      OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.onBoardingGuideButton, 'not.exist');
      OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.topLeftMainMenu);
      OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.mainMenuAdminButton, 'not.exist');
      FreePricing.openPricing();
      FreePricing.openAdminClaim();
      AdminClaim.fillAdminClaim(5);
      OnboardingGuide.verifyOnboardingGuideOpen();
      OnboardingGuide.closeOnboardingGuide();
      AmplitudeEvents.expectAmplitudeEventsToBeSent();
    }
  );
});
