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

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

  it('C5809697: Web onboard as self sell user invited from super admin', { tags: ['@tier1'] }, () => {
    SignUp.signupFlow(token, 'INVITED_FROM_SA');
    SignUp.submitSignUp();
    AdminClaim.fillAdminClaim(0);
    AdminClaim.verifyHomePageOpened();
    AmplitudeEvents.expectAmplitudeEventsToBeSent();
    OnboardByApi.deleteLastOnboardedCompany();
  });

  it.skip('C5809698: Mobile onboard as self sell user invited from super admin', { tags: ['@tier1'] }, () => {
    SignUp.signupFlow(token, 'INVITED_FROM_SA', true);
    SignUp.submitSignUp();
    AdminClaim.fillAdminClaim(0);
    SignUp.continueOnDesktop();
    AmplitudeEvents.expectAmplitudeEventsToBeSent();
    OnboardByApi.deleteLastOnboardedCompany();
  });

  it('C5809699: Web onboard as self sell user invited from app', { tags: ['@tier1'] }, () => {
    SignUp.signupFlow(token, 'ADMIN_INVITED');
    SignUp.submitSignUp();
    FreePricing.openAdminClaim();
    AmplitudeEvents.expectAmplitudeEventsToBeSent();
    OnboardByApi.deleteLastOnboardedCompany();
  });

  it('C5809700: Mobile as self sell user invited from app', { tags: ['@tier1'] }, () => {
    SignUp.signupFlow(token, 'ADMIN_INVITED', true);
    SignUp.submitSignUp();
    FreePricing.openAdminClaim();
    AmplitudeEvents.expectAmplitudeEventsToBeSent();
    OnboardByApi.deleteLastOnboardedCompany();
  });
});

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

  it('C7671488: Web onboard as self sell user as rogue traveler as gbta', { tags: ['@tier1'] }, () => {
    SignUp.visitPersonaSignUp(token, 'MARKETING_PAGE');
    Persona.fillPersonaBeforeSignup(SignupReason.BOOK_TRIP);
    SignUp.fillUserDetail();
    SignUp.submitSignUp();
    AdminClaim.verifyHomePageOpened();
    AmplitudeEvents.expectAmplitudeEventsToBeSent();
    OnboardByApi.deleteLastOnboardedCompany();
  });

  it('C7673485: Web-Mobile onboard as self sell user as rogue traveler as gbta', { tags: ['@tier1'] }, () => {
    SignUp.visitPersonaSignUp(token, 'MARKETING_PAGE', true);
    Persona.fillPersonaBeforeSignup(SignupReason.BOOK_TRIP);
    SignUp.fillUserDetail();
    SignUp.submitSignUp();
    SignUp.continueOnDesktop();
    AmplitudeEvents.expectAmplitudeEventsToBeSent();
    OnboardByApi.deleteLastOnboardedCompany();
  });
});
