From 273cbe338b75aa729b97b2293570fbfcd9889eb3 Mon Sep 17 00:00:00 2001 From: "Brian I. Kim" Date: Fri, 8 Nov 2024 09:10:25 -0800 Subject: [PATCH] LPD-41022 Functional Test --- .../UsersAndOrganizationsPage.ts | 37 +++++++++++++++++++ .../usersAndOrganizations.spec.ts | 16 ++++++++ 2 files changed, 53 insertions(+) diff --git a/modules/test/playwright/pages/users-admin-web/UsersAndOrganizationsPage.ts b/modules/test/playwright/pages/users-admin-web/UsersAndOrganizationsPage.ts index 03a390e1f2601b..0e501fb67d29ea 100644 --- a/modules/test/playwright/pages/users-admin-web/UsersAndOrganizationsPage.ts +++ b/modules/test/playwright/pages/users-admin-web/UsersAndOrganizationsPage.ts @@ -5,6 +5,7 @@ import {FrameLocator, Locator, Page} from '@playwright/test'; +import {clickAndExpectToBeVisible} from '../../utils/clickAndExpectToBeVisible'; import {ApplicationsMenuPage} from '../product-navigation-applications-menu/ApplicationsMenuPage'; export const searchTableRowByValue = async function ( @@ -100,6 +101,9 @@ export class UsersAndOrganizationsPage { ) => Promise; readonly page: Page; readonly pageTitle: Locator; + readonly selectAllUsersCheckBox: Locator; + readonly tableFilterMenu: Locator; + readonly tableFilterMenuItem: (option: string) => Locator; readonly tableOrderMenu: Locator; readonly tableOrderLastLoginDateItem: Locator; readonly usersTableRow: ( @@ -349,6 +353,24 @@ export class UsersAndOrganizationsPage { strictEqual ); }; + this.selectAllUsersCheckBox = page + .locator('.management-bar') + .getByLabel('Select All Users on the Page'); + this.tableFilterMenu = page + .locator('.management-bar') + .getByLabel('Filter'); + this.tableFilterMenuItem = (option: string) => { + if (option === 'all') { + return page + .locator('.dropdown-menu') + .getByRole('menuitem', {name: option}) + .first(); + } + + return page + .locator('.dropdown-menu') + .getByRole('menuitem', {name: option}); + }; this.tableOrderMenu = page .locator('.management-bar') .getByLabel('Order'); @@ -448,6 +470,21 @@ export class UsersAndOrganizationsPage { ]); } + async filterUsers(option: string) { + await Promise.all([ + clickAndExpectToBeVisible({ + autoClick: true, + target: this.tableFilterMenuItem(option), + trigger: this.tableFilterMenu, + }), + this.page.waitForResponse( + (resp) => + resp.status() === 200 && + resp.url().includes('navigation=' + option) + ), + ]); + } + async openOptionsMenu() { await this.optionsMenu .and(this.page.locator('[aria-haspopup]')) diff --git a/modules/test/playwright/tests/users-admin-web/usersAndOrganizations.spec.ts b/modules/test/playwright/tests/users-admin-web/usersAndOrganizations.spec.ts index b839de39e4e780..51aba03cf1346d 100644 --- a/modules/test/playwright/tests/users-admin-web/usersAndOrganizations.spec.ts +++ b/modules/test/playwright/tests/users-admin-web/usersAndOrganizations.spec.ts @@ -474,3 +474,19 @@ test('LPD-29981 Check custom field is escaped', async ({ expect(customFieldDropDownOptions).toBeTruthy(); }); + +test('LPD-41022 Check toolbar select is not visible at all', async ({ + usersAndOrganizationsPage, +}) => { + await usersAndOrganizationsPage.goToUsers(); + + await expect( + usersAndOrganizationsPage.selectAllUsersCheckBox + ).toBeVisible(); + + await usersAndOrganizationsPage.filterUsers('all'); + + await expect( + usersAndOrganizationsPage.selectAllUsersCheckBox + ).not.toBeVisible(); +});