UNPKG

qe-fe-automation

Version:
211 lines (167 loc) 7.6 kB
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); }); });