Skip to content

Commit 9d665eb

Browse files
committed
Fix end-to-end tests
# Conflicts: # application/account-management/WebApp/tests/e2e/user-management-flows.spec.ts
1 parent 9b548f2 commit 9d665eb

File tree

3 files changed

+42
-28
lines changed

3 files changed

+42
-28
lines changed

application/account-management/WebApp/tests/e2e/signup-flows.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ test.describe("@smoke", () => {
154154
// === ACCOUNT MANAGEMENT ===
155155
await step("Clear account name field & verify validation error appears")(async () => {
156156
await page.getByRole("button", { name: "Account" }).first().click();
157-
await expect(page.getByRole("heading", { name: "Account" })).toBeVisible();
157+
await expect(page.getByRole("heading", { name: "Account settings" })).toBeVisible();
158158
await page.getByRole("textbox", { name: "Account name" }).clear();
159159
await page.getByRole("button", { name: "Save changes" }).click();
160160

application/account-management/WebApp/tests/e2e/theme-and-responsiveness-flows.spec.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,16 @@ test.describe("@comprehensive", () => {
7070
await expect(ownerPage.getByRole("button", { name: "Home" })).not.toBeVisible();
7171
await expect(ownerPage.getByRole("button", { name: "Users" })).not.toBeVisible();
7272
await expect(ownerPage.getByRole("button", { name: "Account" })).not.toBeVisible();
73-
const floatingMenuButton = ownerPage.locator('button[aria-label="Help"]').last();
74-
await expect(floatingMenuButton).toBeVisible();
73+
const mobileMenuButton = ownerPage.getByRole("button", { name: "Toggle collapsed menu" });
74+
await expect(mobileMenuButton).toBeVisible();
7575
})();
7676

7777
await step("Toggle mobile theme button & verify theme changes")(async () => {
78-
const mobileThemeButton = ownerPage.getByRole("button", { name: "Toggle theme" });
79-
await mobileThemeButton.click();
78+
// Open mobile menu first
79+
await ownerPage.getByRole("button", { name: "Toggle collapsed menu" }).click();
80+
81+
// Find and click theme toggle button inside mobile menu
82+
await ownerPage.getByRole("button", { name: "Theme" }).click();
8083

8184
await expect(ownerPage.locator("html")).toHaveClass(secondTheme);
8285
})();

application/account-management/WebApp/tests/e2e/user-management-flows.spec.ts

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -263,22 +263,20 @@ test.describe("@comprehensive", () => {
263263
})();
264264

265265
// === ADVANCED FILTERING SECTION ===
266-
await step("Open filters & verify all filter options are available")(async () => {
267-
// Click the filter button to expand filter options
268-
await page.locator("button:near(input[placeholder='Search'])").last().click();
269-
270-
// Wait for filters to appear and verify dropdowns are visible
266+
await step("Verify all filter options are available")(async () => {
267+
// Filters should already be visible due to URL filtering from previous step
271268
await expect(page.getByLabel("User role").first()).toBeVisible();
272-
await expect(page.getByLabel("User status").first()).toBeVisible();
269+
await expect(page.getByLabel("User status").first()).toBeVisible();
273270
await expect(page.getByLabel("Modified date").first()).toBeVisible();
274271
})();
275272

276273
await step("Filter by Owner role & verify only owner shown")(async () => {
277-
// Reset status filter first
274+
// First dismiss any open dropdown and clear status filter
275+
await page.keyboard.press("Escape");
278276
await page.getByLabel("User status").first().click();
279277
await page.getByRole("option", { name: "Any status" }).click();
280-
281-
// Filter by Owner role
278+
279+
// Now filter by Owner role
282280
await page.getByLabel("User role").first().click();
283281
await page.getByRole("option", { name: "Owner" }).click();
284282

@@ -334,25 +332,36 @@ test.describe("@comprehensive", () => {
334332
await page.getByLabel("User status").first().click();
335333
await page.getByRole("option", { name: "Any status" }).click();
336334

337-
// Set date range using the DateRangePicker spinbutton segments
338-
// Start date: 01/01/2020
339-
await page.locator('[role="spinbutton"][aria-label="month, Start Date, "]').type('01');
340-
await page.locator('[role="spinbutton"][aria-label="day, Start Date, "]').type('01');
341-
await page.locator('[role="spinbutton"][aria-label="year, Start Date, "]').type('2020');
342-
343-
// End date: 12/31/2020
344-
await page.locator('[role="spinbutton"][aria-label="month, End Date, "]').type('12');
345-
await page.locator('[role="spinbutton"][aria-label="day, End Date, "]').type('31');
346-
await page.locator('[role="spinbutton"][aria-label="year, End Date, "]').type('2020');
347-
348-
// Verify no users are shown for the past date range (Playwright auto-waits for condition)
335+
// Open date picker
336+
await page.getByLabel("Modified date").first().click();
337+
338+
// Set start date to January 1, 2024
339+
await page.locator('[role="spinbutton"][aria-label="month, Start Date, "]').clear();
340+
await page.locator('[role="spinbutton"][aria-label="month, Start Date, "]').type("01");
341+
await page.locator('[role="spinbutton"][aria-label="day, Start Date, "]').clear();
342+
await page.locator('[role="spinbutton"][aria-label="day, Start Date, "]').type("01");
343+
await page.locator('[role="spinbutton"][aria-label="year, Start Date, "]').clear();
344+
await page.locator('[role="spinbutton"][aria-label="year, Start Date, "]').type("2024");
345+
346+
// Set end date to December 31, 2024
347+
await page.locator('[role="spinbutton"][aria-label="month, End Date, "]').clear();
348+
await page.locator('[role="spinbutton"][aria-label="month, End Date, "]').type("12");
349+
await page.locator('[role="spinbutton"][aria-label="day, End Date, "]').clear();
350+
await page.locator('[role="spinbutton"][aria-label="day, End Date, "]').type("31");
351+
await page.locator('[role="spinbutton"][aria-label="year, End Date, "]').clear();
352+
await page.locator('[role="spinbutton"][aria-label="year, End Date, "]').type("2024");
353+
354+
// Close the calendar
355+
await page.keyboard.press("Escape");
356+
357+
// Verify no users are shown for the past date range (users were created in 2025)
349358
await expect(page.locator("tbody tr")).toHaveCount(0);
350359
})();
351360

352361
// === CLEAR FILTERS FOR CLEAN DELETION TESTS ===
353362
await step("Clear all filters & verify all users shown again for clean deletion tests")(async () => {
354363
// Reset any remaining filters to show all users
355-
await page.getByRole("button", { name: "Hide filters" }).click();
364+
await page.getByRole("button", { name: "Clear filters" }).click();
356365

357366
// Verify all users are shown again
358367
await expect(page.locator("tbody tr")).toHaveCount(4);
@@ -373,6 +382,7 @@ test.describe("@comprehensive", () => {
373382

374383
await page.getByRole("button", { name: "Delete" }).click();
375384

385+
await expectToastMessage(context, `User deleted successfully: ${user1.email}`);
376386
await expect(page.getByRole("alertdialog")).not.toBeVisible();
377387
await expect(page.locator("tbody tr")).toHaveCount(3); // owner + user2 + user3
378388
await expect(page.getByText(user1.email)).not.toBeVisible();
@@ -418,13 +428,14 @@ test.describe("@comprehensive", () => {
418428
await expect(page.getByRole("alertdialog", { name: "Delete users" })).toBeVisible();
419429
await page.getByRole("button", { name: "Delete" }).click();
420430

431+
await expectToastMessage(context, "2 users deleted successfully");
421432
await expect(page.getByRole("alertdialog")).not.toBeVisible();
422433
await expect(page.locator("tbody tr")).toHaveCount(1); // Only owner left
423434
await expect(page.getByText(user2.email)).not.toBeVisible();
424435
await expect(page.getByText(user3.email)).not.toBeVisible();
425436
await expect(page.locator("tbody")).toContainText(owner.email);
426437
await expect(page.getByRole("button", { name: "Delete 2 users" })).not.toBeVisible();
427-
await expect(page.getByRole("button", { name: "Invite users" })).toBeVisible();
438+
await expect(page.getByRole("button", { name: "Invite user" })).toBeVisible();
428439
})();
429440

430441
// === OWNER PROTECTION SECTION ===

0 commit comments

Comments
 (0)