qe-fe-automation
Version:
FE test automation framework using cypress
83 lines (76 loc) • 3.29 kB
text/typescript
import { GrowthInterceptApis } from '@growth-lib/api-intercept';
import { Random, loginRequest } from 'cypress/artifacts';
import { stagingUsers } from '@fixtures/staging-users';
import { NewAccount } from '@growth-lib/growth-new-account';
import { CompanyAccountType, CompanySegmentType, ONBOARDING_GUIDE_SELECTORS } from '@growth-lib/onboarding-guide.utils';
import { OnboardingGuide } from '@growth-lib/onboarding-guide';
import { AddUser } from '@growth-lib/add-user';
import { AdminClaim } from '@growth-lib/admin-claim';
const { superAdmin } = stagingUsers;
const superAdminCredentials = Cypress.env('superAdmin').SUPER_ADMIN_PASSWORD;
describe('Growth: create new company and check onboarding guide pages for Travel company', () => {
let userEmail = '';
const completeTravelTasks = (loginToken: string, withAddress = false) => {
AdminClaim.interceptedToken = loginToken;
OnboardingGuide.verifyOnboardingGuideOpen();
if (withAddress) {
OnboardingGuide.verifyTaskCompleted(ONBOARDING_GUIDE_SELECTORS.addressTask);
} else {
OnboardingGuide.completeAddAddressTask();
OnboardingGuide.openOnboardingGuide();
}
OnboardingGuide.completeGetReadyToTravel();
OnboardingGuide.openOnboardingGuide();
OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.reviewTravelPolicyMarkAsDone);
OnboardingGuide.clickOn(ONBOARDING_GUIDE_SELECTORS.setUpTravelPaymentMethodMarkAsDone);
OnboardingGuide.checkPageAddAndInviteUsers();
const randomId = Random.randomString(6);
userEmail = `cypress-traditional-onboarding-user-${randomId}@${NewAccount.randomDomain}`;
AddUser.inviteNewUser(userEmail);
OnboardingGuide.closeOnboardingGuide();
OnboardingGuide.terminateOnboardingGuide();
};
const setupNewUser = () => {
NewAccount.setupUser(userEmail).then((userToken: string) => {
AdminClaim.interceptedToken = userToken;
OnboardingGuide.verifyOnboardingGuideOpen();
OnboardingGuide.verifyUserOnboardingTasks();
OnboardingGuide.fillAllUserOnboardingTasks();
OnboardingGuide.closeOnboardingGuide();
OnboardingGuide.terminateOnboardingGuide();
});
};
beforeEach(() => {
GrowthInterceptApis.interceptApis();
loginRequest(superAdmin.email, superAdminCredentials, true).then((token) => {
NewAccount.SAToken = token;
});
});
it('C14174956: complete TRAVEL + address', { tags: ['@tier1', '@onboardingGuideIndependent'] }, () => {
NewAccount.createNewAccount({
accountSegment: CompanySegmentType.SMB,
accountType: CompanyAccountType.TRAVEL,
address: {
address1: '123 Main St',
address2: 'Suite 100',
city: 'San Francisco',
state: 'CA',
country: 'US',
zipCode: '94105'
}
}).then((loginToken: string) => {
const withAddress = true;
completeTravelTasks(loginToken, withAddress);
setupNewUser();
});
});
it('C14174957: complete TRAVEL WITHOUT address', { tags: ['@tier1', '@onboardingGuideIndependent'] }, () => {
NewAccount.createNewAccount({
accountSegment: CompanySegmentType.COMMERCIAL,
accountType: CompanyAccountType.TRAVEL
}).then((loginToken: string) => {
completeTravelTasks(loginToken);
setupNewUser();
});
});
});