qe-fe-automation
Version:
FE test automation framework using cypress
211 lines (167 loc) • 7.6 kB
text/typescript
import { AdminPayment } from '@admin-lib/index';
import { LoginPage } from '@admin-lib/login';
import { stagingUsers } from '@fixtures/staging-users';
import { GrowthInterceptApis } from '@growth-lib/api-intercept';
import { UsersPage, userPageSelectors, apiWait } from '@admin-lib/admin_avi/users-page';
import { loginRequest } from 'cypress/artifacts';
import { formatStr } from '@growth-lib/users-roles';
const { emailAccountOwner, companyDomain } = stagingUsers.growth_users_regression;
const authUserPassword = Cypress.env('newUser').NEW_USER_PASSWORD;
describe('Users page - regressions tests', () => {
let token: string;
const USER_A = 'userlasta';
const USER_B = 'userb-lastb';
const ownerUser = 'test test';
const CLEAR = '(Blank)';
beforeEach(() => {
GrowthInterceptApis.interceptApis();
LoginPage.clearExistingLoginSession();
loginRequest(emailAccountOwner, authUserPassword).then((_token) => {
token = _token;
UsersPage.gotoUsersPage();
AdminPayment.closeHelpPopup();
UsersPage.clearStatusFilterIfNeeded();
});
});
it('C13829372: users page allow assigning approver and manager', { tags: ['@tier1'] }, () => {
UsersPage.openSelectManagerForUser(`${USER_A}@${companyDomain}`);
UsersPage.selectUserInDropDown(`${ownerUser}\n${emailAccountOwner}`);
UsersPage.verifyEmailInManagerCell(`${USER_A}@${companyDomain}`, emailAccountOwner);
UsersPage.openSelectApproverForUser(`${USER_A}@${companyDomain}`);
UsersPage.selectUserInDropDown(`${ownerUser}\n${emailAccountOwner}`);
UsersPage.verifyEmailInApproverCell(`${USER_A}@${companyDomain}`, emailAccountOwner);
UsersPage.openSelectManagerForUser(`${USER_A}@${companyDomain}`);
UsersPage.selectUserInDropDown(CLEAR);
UsersPage.openSelectApproverForUser(`${USER_A}@${companyDomain}`);
UsersPage.selectUserInDropDown(CLEAR);
});
it('C13829373: verify status, register cells in users-page', { tags: ['@tier1'] }, () => {
const userBEmail = `${USER_B}@${companyDomain}`;
UsersPage.clickOnUserSelector(userBEmail, userPageSelectors.statusToggle);
UsersPage.waitFor(apiWait.USERS_PATCH);
UsersPage.verifyUserStatusToggle(userBEmail, false);
UsersPage.clickOnUserSelector(userBEmail, userPageSelectors.statusToggle);
UsersPage.waitFor(apiWait.USERS_PATCH);
UsersPage.verifyUserStatusToggle(userBEmail, true);
UsersPage.clickOnUserSelector(userBEmail, userPageSelectors.registeredColumn);
UsersPage.verifySelectorExist(userPageSelectors.modalSendCtaModal);
UsersPage.clickOn(userPageSelectors.modalSendCtaModal);
});
it('C13829374: verify access, permission column in users-page', { tags: ['@tier1'] }, () => {
const userBEmail = `${USER_B}@${companyDomain}`;
UsersPage.modifyAccessModalPermissions(
userBEmail,
userPageSelectors.accessColumn,
userPageSelectors.permissionItem
);
UsersPage.waitFor(apiWait.USER_ACCESS_CONTROL);
UsersPage.clickOn(userPageSelectors.closeModal);
const enabledArr = [true, true, false, false, false];
UsersPage.verifyPermissionsItems(
userBEmail,
enabledArr.map((enabled, i) => ({ enabled, index: i + 1 }))
);
UsersPage.modifyAccessModalPermissions(
userBEmail,
userPageSelectors.accessColumn,
userPageSelectors.permissionItem
);
UsersPage.clickOn(userPageSelectors.closeModal);
});
it('C13829794: verify title cell in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
UsersPage.testEditableTextColumn(userAEmail, userPageSelectors.titleColumnToggle, 'title check');
});
it('C13829795: verify employee cell in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
UsersPage.testEditableTextColumn(userAEmail, userPageSelectors.employeeidColumn, 'employeeCheck');
});
it('C13829796: verify cost center cell in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
const userBEmail = `${USER_B}@${companyDomain}`;
UsersPage.testCustomDropDownColumn({
columnSelector: userPageSelectors.costCenterColumn,
userA: userAEmail,
userB: userBEmail,
textToType: 'my cost center'
});
UsersPage.cleanupTestDropDownColumn({
columnSelector: userPageSelectors.costCenterColumn,
userA: userAEmail,
userB: userBEmail,
textToType: CLEAR
});
});
it('C13829797: verify department cell in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
const userBEmail = `${USER_B}@${companyDomain}`;
UsersPage.testCustomDropDownColumn({
columnSelector: userPageSelectors.departmentColumn,
userA: userAEmail,
userB: userBEmail,
textToType: 'my department'
});
UsersPage.cleanupTestDropDownColumn({
columnSelector: userPageSelectors.departmentColumn,
userA: userAEmail,
userB: userBEmail,
textToType: CLEAR
});
});
it('C13829798: verify region cell in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
const userBEmail = `${USER_B}@${companyDomain}`;
UsersPage.testCustomDropDownColumn({
columnSelector: userPageSelectors.regionColumn,
userA: userAEmail,
userB: userBEmail,
textToType: 'my region'
});
UsersPage.cleanupTestDropDownColumn({
columnSelector: userPageSelectors.regionColumn,
userA: userAEmail,
userB: userBEmail,
textToType: CLEAR
});
});
it('C13829799: verify subsidiary cell in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
const userBEmail = `${USER_B}@${companyDomain}`;
UsersPage.testCustomDropDownColumn({
columnSelector: userPageSelectors.subsidiaryColumn,
userA: userAEmail,
userB: userBEmail,
textToType: 'my subsidiary'
});
UsersPage.cleanupTestDropDownColumn({
columnSelector: userPageSelectors.subsidiaryColumn,
userA: userAEmail,
userB: userBEmail,
textToType: CLEAR
});
});
it('C13829800: verify office column in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
const columnSelector = userPageSelectors.companyOfficeColumn;
const DEFAULT_OFFICE = 'Default office';
UsersPage.clickOnUserSelector(userAEmail, columnSelector);
UsersPage.selectUserInDropDown(CLEAR);
UsersPage.clickOnUserSelector(userAEmail, columnSelector);
UsersPage.clickOn(formatStr(userPageSelectors.dropDownSelection, DEFAULT_OFFICE));
UsersPage.verifySelectorContent(userAEmail, columnSelector, DEFAULT_OFFICE);
});
it('C13829801: verify policy level column in users-page', { tags: ['@tier1'] }, () => {
const userAEmail = `${USER_A}@${companyDomain}`;
const columnSelector = userPageSelectors.policyLevelColumn;
const EXECUTIVE = 'Executive';
const DEFAULT = 'Default';
UsersPage.clickOnUserSelector(userAEmail, columnSelector);
UsersPage.clickOn(formatStr(userPageSelectors.dropDownSelection, EXECUTIVE));
UsersPage.waitFor(apiWait.USERS_PATCH);
UsersPage.verifySelectorContent(userAEmail, columnSelector, EXECUTIVE);
UsersPage.clickOnUserSelector(userAEmail, columnSelector);
UsersPage.clickOn(formatStr(userPageSelectors.dropDownSelection, DEFAULT));
UsersPage.waitFor(apiWait.USERS_PATCH);
UsersPage.verifySelectorContent(userAEmail, columnSelector, DEFAULT);
});
});