qe-fe-automation
Version:
FE test automation framework using cypress
148 lines (130 loc) • 5.99 kB
text/typescript
import { GrowthInterceptApis } from '@growth-lib/api-intercept';
import { LoginSelfSell } from '@support-growth/login-self-sell';
import { SignUp } from '@growth-lib/sign-up';
import { AmplitudeEvents } from '@growth-lib/amplitude-events';
import { DelegatePage } from '@growth-lib/delegate-page';
import { LoginPage } from '@admin-lib/login';
import faker from '@faker-js/faker';
import { Timeouts } from '@utility-lib/constants';
import { GrowthRegistrationUrls } from '@growth-lib/model';
import { OnboardByApi } from '@growth-lib/onboard-by-api';
import { SignupReason } from '../../../growth_common_lib';
const testUserEmail = 'mgoldenberg@dlge2e.com';
const testUserEmail2 = 'rchabra+traveltest11-no-persona-bfo@traveltest11-no-persona-bfo.com';
const credentials = Cypress.env('newUser').NEW_USER_PASSWORD;
const checkAddTravelerEmptySuggestions = () => {
DelegatePage.clickAddTraveler();
DelegatePage.checkAddTravelerFromListEmpty(false, true);
DelegatePage.createNewTravelerUser('Laura', 'Miller');
};
const goToNotificationsFromToastAndVerify = () => {
DelegatePage.checkSideToastShown(true);
DelegatePage.checkEditProfileShownWithNotifications('Laura Miller');
DelegatePage.pressBackFromNotifications();
DelegatePage.verifyDelegateHomePageOpened();
};
const checkAddTravelerFromSuggestions = () => {
DelegatePage.clickAddTraveler();
DelegatePage.checkAddTravelerFromListNotEmpty();
DelegatePage.searchNotExistingTraveler('Not Existing');
DelegatePage.searchExistingTraveler('Adam Abr');
DelegatePage.addSearchedTraveler();
DelegatePage.checkUserSelectedAndEmptyTripState('Adam Abramson');
};
const addFirstTravelerAndCheckHeSelectedWithEmptyTrips = () => {
DelegatePage.createNewTravelerUser('Adam', 'Abramson');
DelegatePage.checkSideToastShown(false);
DelegatePage.checkUserSelectedAndEmptyTripState('Adam Abramson');
DelegatePage.checkAddTravelerBottomButtonShown();
};
describe('Affiliate: new company on-boarding for delegate user', () => {
let token: string;
beforeEach(() => {
GrowthInterceptApis.interceptApis();
LoginSelfSell.createNewSelfSellLead({
registrationUrl: GrowthRegistrationUrls.travel
}).then((login) => {
token = login.token;
});
});
it('C8357371: Web onboard as self sell user for delegate user', { tags: ['@tier1'] }, () => {
SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, false);
DelegatePage.verifyDelegateHomePageOpened();
DelegatePage.verifyDelegateIsLandingPage();
AmplitudeEvents.expectAmplitudeEventsToBeSent();
OnboardByApi.deleteLastOnboardedCompany();
});
it('C8357372: Web onboard as self sell user for delegate user - mobile', { tags: ['@tier1'] }, () => {
SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, true);
SignUp.howItWorksForDelegate();
AmplitudeEvents.expectAmplitudeEventsToBeSent();
OnboardByApi.deleteLastOnboardedCompany();
});
it('C9968088: Web delegate user new trip selecting user - web', { tags: ['@tier1'] }, () => {
const TEST_USER_NAME = 'Michael Jordan';
LoginPage.clearExistingLoginSession();
LoginPage.visitTALoginPage();
LoginPage.loginWithCredentials(testUserEmail, credentials);
DelegatePage.closeWelcomeModal();
DelegatePage.selectSpecificStaticUser(TEST_USER_NAME);
DelegatePage.clickNewTrip();
DelegatePage.verifySearchPageShownWithSelectedUser(TEST_USER_NAME);
cy.go('back');
DelegatePage.clickNewTripNoResults(TEST_USER_NAME.split(' ')[0]);
DelegatePage.verifySearchPageShownWithSelectedUser(TEST_USER_NAME);
});
it(
'C12926557: Web delegate user - login and add e2e guest travel planner redirect to profile - web',
{ tags: ['@tier1'] },
() => {
LoginPage.clearExistingLoginSession();
LoginPage.visitTALoginPage();
LoginPage.loginWithCredentials(testUserEmail2, credentials);
DelegatePage.closeWelcomeModal();
DelegatePage.checkEditProfileLeftSide('GUEST DO NOT TOUCH');
}
);
it(
'C10134898: WEB delegate edit travelers profile Notification tab is shown via and functionality',
{ tags: ['@tier1'] },
() => {
SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, false);
DelegatePage.verifyDelegateHomePageOpened();
DelegatePage.closeWelcomeModal();
DelegatePage.checkAddTravelerCenterButtonYellowMark();
DelegatePage.clickAddTravelerCenter();
const firstName = faker.name.firstName();
const lastName = faker.name.lastName().replace(/'/g, '');
DelegatePage.createNewTravelerUser(firstName, lastName);
DelegatePage.clickEditProfile();
DelegatePage.checkEditProfileShownWithNotifications(`${firstName} ${lastName}`);
DelegatePage.verifyNotificationUpdated();
OnboardByApi.deleteLastOnboardedCompany();
}
);
it(
'C10135383 C10135141 C10135139: Add Traveler flow - add users, remove, search, check empty states, ' +
', yellow sign is not show, check select user to see trips (empty state), notification indication shown and working',
{ tags: ['@tier1'] },
() => {
SignUp.signupWithSkipAdmin(token, SignupReason.BOOK_FOR_OTHERS, false);
DelegatePage.verifyDelegateHomePageOpened();
DelegatePage.closeWelcomeModal();
DelegatePage.checkAddTravelerCenterButtonYellowMark();
DelegatePage.verifyBFOBannerShown();
DelegatePage.clickAddTravelerCenter();
addFirstTravelerAndCheckHeSelectedWithEmptyTrips();
cy.wait(Timeouts.SHORT_TIMEOUT_5_SEC.timeout);
// this part checks C10135139
checkAddTravelerEmptySuggestions();
goToNotificationsFromToastAndVerify();
DelegatePage.verifyUsersSorted();
DelegatePage.removeTraveler();
DelegatePage.checkUserNotExist('Adam Abramson');
DelegatePage.verifyUsersSorted();
checkAddTravelerFromSuggestions();
DelegatePage.verifyUsersSorted();
OnboardByApi.deleteLastOnboardedCompany();
}
);
});