import { GrowthInterceptApis } from '@growth-lib/api-intercept';
import { LoginSelfSell } from '@support-growth/login-self-sell';
import { SignUp } from '@growth-lib/sign-up';
import { SignupReason } from '@growth-lib/persona';
import { AmplitudeEvents } from '@growth-lib/amplitude-events';
import { PromoBanner } from '@growth-lib/promo-banner';
import { FreePricing } from '@growth-lib/free-pricing';

describe('Growth: free pricing model', () => {
  let token: string;

  beforeEach(() => {
    GrowthInterceptApis.interceptApis();
    LoginSelfSell.createNewSelfSellLead({
      tag: 'free-pricing-model'
    }).then((login) => {
      token = login.token;
    });
  });

  it.skip(
    'C13344974: rogue will get the promo banner in sign up, home screen and in pricing page in app',
    { tags: ['@tier1'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_TRIP, false);
      FreePricing.rogueVerifyPricingAndClaimAdmin();

      AmplitudeEvents.expectAmplitudeEventsToBeSent();
    }
  );

  it('C13344975: t&e admin will get free model pricing screen', { tags: ['@tier1'] }, () => {
    SignUp.signupWithSkipAdmin(token, SignupReason.TRAVEL_AND_EXPENSE_SOLUTION, false);
    FreePricing.verifyExpensePricingScreenIsOpened();
    FreePricing.openAdminClaim();
    FreePricing.verifyTravelAdminPricingScreen();
    FreePricing.verifyExpenseAdminPricingScreen();

    AmplitudeEvents.expectAmplitudeEventsToBeSent();
  });

  it(
    'C13345392: travel admin will get the promo banner in sign up, pricing and home screen',
    { tags: ['@tier1'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.TRAVEL_SOLUTION, false);
      FreePricing.verifyTravelAdminPricingScreen();

      AmplitudeEvents.expectAmplitudeEventsToBeSent();
    }
  );

  it('C13345393: bfo will get the promo banner in sign up and in pricing in app', { tags: ['@tier1'] }, () => {
    SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, false);
    PromoBanner.BfoClaimAdmin();
    FreePricing.verifyTravelAdminPricingScreen();

    AmplitudeEvents.expectAmplitudeEventsToBeSent();
  });

  it(
    'C13345394: event organizer will get the promo banner in sign up, pricing and home screen',
    { tags: ['@tier1'] },
    () => {
      SignUp.signupWithSkipAdmin(token, SignupReason.TEAM_OFFSITE, false);
      FreePricing.verifyTravelAdminPricingScreen();

      AmplitudeEvents.expectAmplitudeEventsToBeSent();
    }
  );
});
