import { AdminDashboardPage } from '@admin-lib/index';
import { GrowthAds } from '@growth-lib/ads';
import { GrowthUtilities } from '@growth-lib/growth-utilities';
import {
  GrowthInterceptApis,
  LoginSelfSell,
  SignUp,
  OnboardingGuide,
  ONBOARDING_GUIDE_SELECTORS
} from '@growth-lib/index';
import { HomePage } from '@rebranded_home_page-lib/home-page';

describe('Affiliate: Ads', () => {
  let token: string;
  beforeEach(() => {
    GrowthInterceptApis.interceptApis();
    LoginSelfSell.createNewSelfSellLead().then((login) => {
      token = login.token;
    });
  });

  it(
    'C6974527: should show expending banner ad on admin dashboard and complete upsell expess flow after terminating onboarding guide',
    { tags: ['@tier1', '@onboardingGuideIndependent'] },
    () => {
      SignUp.fillSignUpForm(token, 'MARKETING_PAGE');
      GrowthUtilities.fillAdminClaimFlowNoExpenseFlow();
      OnboardingGuide.verifyOnboardingGuideOpen();
      OnboardingGuide.fillAllOnboardingTasks();
      OnboardingGuide.terminateOnboardingGuide();

      HomePage.visitHomePage();
      GrowthAds.clickOnHomePageAdTile();
      GrowthAds.verifyUpsellExpenseOpen();

      AdminDashboardPage.visitAdminDashboardPage();

      GrowthAds.clickOnExpendingBannerAd();
      GrowthAds.verifyUpsellExpenseOpen();
      GrowthAds.clickOnAddExpenseCheckbox();
      GrowthAds.clickOnAddExpenseCTA();
      GrowthAds.verifyUpsellExpenseSubmitted();
      GrowthAds.clickOnSetUpNavanExpense();

      GrowthUtilities.hideLiquidUnifiedListBanner();
      OnboardingGuide.verifyOnboardingGuideOpen();
      OnboardingGuide.verify(ONBOARDING_GUIDE_SELECTORS.getReadyToExpenseTask);
      OnboardingGuide.pressSkipThisInGetReadyToExpenseFromAdmin();
    }
  );
});
