@@ -263,22 +263,20 @@ test.describe("@comprehensive", () => {
263
263
} ) ( ) ;
264
264
265
265
// === 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
271
268
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 ( ) ;
273
270
await expect ( page . getByLabel ( "Modified date" ) . first ( ) ) . toBeVisible ( ) ;
274
271
} ) ( ) ;
275
272
276
273
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" ) ;
278
276
await page . getByLabel ( "User status" ) . first ( ) . click ( ) ;
279
277
await page . getByRole ( "option" , { name : "Any status" } ) . click ( ) ;
280
-
281
- // Filter by Owner role
278
+
279
+ // Now filter by Owner role
282
280
await page . getByLabel ( "User role" ) . first ( ) . click ( ) ;
283
281
await page . getByRole ( "option" , { name : "Owner" } ) . click ( ) ;
284
282
@@ -334,25 +332,36 @@ test.describe("@comprehensive", () => {
334
332
await page . getByLabel ( "User status" ) . first ( ) . click ( ) ;
335
333
await page . getByRole ( "option" , { name : "Any status" } ) . click ( ) ;
336
334
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)
349
358
await expect ( page . locator ( "tbody tr" ) ) . toHaveCount ( 0 ) ;
350
359
} ) ( ) ;
351
360
352
361
// === CLEAR FILTERS FOR CLEAN DELETION TESTS ===
353
362
await step ( "Clear all filters & verify all users shown again for clean deletion tests" ) ( async ( ) => {
354
363
// 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 ( ) ;
356
365
357
366
// Verify all users are shown again
358
367
await expect ( page . locator ( "tbody tr" ) ) . toHaveCount ( 4 ) ;
@@ -373,6 +382,7 @@ test.describe("@comprehensive", () => {
373
382
374
383
await page . getByRole ( "button" , { name : "Delete" } ) . click ( ) ;
375
384
385
+ await expectToastMessage ( context , `User deleted successfully: ${ user1 . email } ` ) ;
376
386
await expect ( page . getByRole ( "alertdialog" ) ) . not . toBeVisible ( ) ;
377
387
await expect ( page . locator ( "tbody tr" ) ) . toHaveCount ( 3 ) ; // owner + user2 + user3
378
388
await expect ( page . getByText ( user1 . email ) ) . not . toBeVisible ( ) ;
@@ -418,13 +428,14 @@ test.describe("@comprehensive", () => {
418
428
await expect ( page . getByRole ( "alertdialog" , { name : "Delete users" } ) ) . toBeVisible ( ) ;
419
429
await page . getByRole ( "button" , { name : "Delete" } ) . click ( ) ;
420
430
431
+ await expectToastMessage ( context , "2 users deleted successfully" ) ;
421
432
await expect ( page . getByRole ( "alertdialog" ) ) . not . toBeVisible ( ) ;
422
433
await expect ( page . locator ( "tbody tr" ) ) . toHaveCount ( 1 ) ; // Only owner left
423
434
await expect ( page . getByText ( user2 . email ) ) . not . toBeVisible ( ) ;
424
435
await expect ( page . getByText ( user3 . email ) ) . not . toBeVisible ( ) ;
425
436
await expect ( page . locator ( "tbody" ) ) . toContainText ( owner . email ) ;
426
437
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 ( ) ;
428
439
} ) ( ) ;
429
440
430
441
// === OWNER PROTECTION SECTION ===
0 commit comments