import { OnboardingGuide } from '@growth-lib/onboarding-guide';
import { Timeouts } from '@utility-lib/constants';
import { ONBOARDING_GUIDE_SELECTORS } from './onboarding-guide.utils';

const reviewTravelPolicySelectors = {
  reviewTravelPolicyNextButtons: '[data-testid="wizard-stepper-see-examples"]'
};

export class ReviewTravelPolicy {
  static policyStepName = [
    'Navan policy controls',
    'Dynamic pricing',
    'Traveler search results Clevlend',
    'Traveler search results Manhattan',
    'Out-of-policy bookings',
    'Out-of-policy notifications',
    'Choose your travel policy'
  ];

  static reviewTravelPolicyNext(): void {
    cy.get(reviewTravelPolicySelectors.reviewTravelPolicyNextButtons).click();
  }

  static fillOnboardingTaskTravelPolicyForTravelAndExpense(): void {
    OnboardingGuide.completeAddAddressTask();
    OnboardingGuide.openOnboardingGuide();
    OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedReviewTravelPolicy);
    ReviewTravelPolicy.reviewTravelPolicyNext();
    OnboardingGuide.openOnboardingGuide();
    OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.getStartedReviewTravelPolicy);
    cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout);

    this.policyStepName.forEach((name) => {
      cy.allure().logStep(name);
      this.reviewTravelPolicyNext();
    });
  }
}
