@@ -264,7 +264,7 @@ export async function testFilterPersistence(
264
264
await page . getByText ( filterRegex ( testFilter ) ) . click ( ) ;
265
265
const to_select = await getFirstFilterButton ( page ) ;
266
266
await expect ( to_select . getByRole ( "checkbox" ) ) . not . toBeChecked ( ) ;
267
- await to_select . getByRole ( "checkbox" ) . click ;
267
+ await to_select . getByRole ( "checkbox" ) . click ( ) ;
268
268
const filterName = ( await to_select . innerText ( ) ) . split ( "\n" ) [ 0 ] ; //MAY NEED TO ADD SOME CHECKING MECHANISM HERE
269
269
await expect ( to_select . getByRole ( "checkbox" ) ) . toBeChecked ( ) ;
270
270
await page . locator ( "body" ) . click ( ) ;
@@ -320,13 +320,15 @@ export async function testFilterCounts(
320
320
console . log ( filter_numbers . map ( ( x ) => Number ( x ) ) ) ;
321
321
return false ;
322
322
}
323
+ // Check the filter
323
324
await filter_button . getByRole ( "checkbox" ) . dispatchEvent ( "click" ) ;
324
325
await page . waitForLoadState ( "load" ) ;
326
+ // Exit the filter menu
325
327
await page . locator ( "body" ) . click ( ) ;
326
328
await expect ( page . getByRole ( "checkbox" ) ) . toHaveCount ( 0 ) ;
329
+ // Expect the displayed count of elements to be 0
327
330
const firstNumber =
328
331
filter_number <= elements_per_page ? filter_number : elements_per_page ;
329
-
330
332
await expect (
331
333
page . getByText ( "Results 1 - " + firstNumber + " of " + filter_number )
332
334
) . toBeVisible ( ) ;
@@ -341,25 +343,68 @@ export async function testFilterBubbles(
341
343
) : Promise < void > {
342
344
page . goto ( tab . url ) ;
343
345
for ( const filter of filters ) {
346
+ // Select a filter
344
347
await page . getByText ( filterRegex ( filter ) ) . dispatchEvent ( "click" ) ;
345
- //await page.waitForTimeout(500);
346
348
await page . waitForLoadState ( "load" ) ;
347
349
const firstFilterButton = getFirstFilterButton ( page ) ;
350
+ // Get the name of the selected filter
348
351
const firstFilterName =
349
352
( await firstFilterButton . innerText ( ) )
350
353
. split ( "\n" )
351
354
. find ( ( x ) => x . length > 0 ) ?? "" ;
355
+ // Click the selected filter and exit the filter menu
352
356
await firstFilterButton . getByRole ( "checkbox" ) . click ( ) ;
353
357
await page . waitForLoadState ( "load" ) ;
354
- await page . keyboard . press ( "Escape" ) ;
358
+ await page . locator ( "body" ) . click ( ) ;
355
359
await expect ( page . getByRole ( "checkbox" ) ) . toHaveCount ( 0 ) ;
360
+ // Click the blue button
356
361
const filterBlueButton = page
357
362
. locator ( "#sidebar-positioner" )
358
363
. getByText ( firstFilterName ) ;
359
364
await expect ( filterBlueButton ) . toBeVisible ( ) ;
360
365
await filterBlueButton . scrollIntoViewIfNeeded ( ) ;
361
366
await filterBlueButton . dispatchEvent ( "click" ) ;
367
+ // Expect the blue button to disappear when clicked
362
368
await expect ( filterBlueButton ) . toHaveCount ( 0 ) ;
369
+ // Expect the filter to be deselected in the filter menu
370
+ await page . getByText ( filterRegex ( filter ) ) . dispatchEvent ( "click" ) ;
371
+ await expect ( firstFilterButton . getByRole ( "checkbox" ) ) . not . toBeChecked ( ) ;
372
+ await page . locator ( "body" ) . click ( ) ;
373
+ }
374
+ }
375
+
376
+ export async function testClearAll (
377
+ page : Page ,
378
+ tab : TabDescription ,
379
+ filters : string [ ]
380
+ ) : Promise < void > {
381
+ await page . goto ( tab . url ) ;
382
+ const selected_filter_list = [ ] ;
383
+ for ( const filter of filters ) {
384
+ await page . getByText ( filterRegex ( filter ) ) . dispatchEvent ( "click" ) ;
385
+ await getFirstFilterButton ( page ) . getByRole ( "checkbox" ) . click ( ) ;
386
+ await expect (
387
+ getFirstFilterButton ( page ) . getByRole ( "checkbox" )
388
+ ) . toBeChecked ( ) ;
389
+ selected_filter_list . push (
390
+ ( await getFirstFilterButton ( page ) . innerText ( ) )
391
+ . split ( "\n" )
392
+ . find ( ( x ) => x . length > 0 ) ?? ""
393
+ ) ;
394
+ await page . locator ( "body" ) . click ( ) ;
395
+ }
396
+ await page . getByText ( "Clear All" ) . dispatchEvent ( "click" ) ;
397
+ for ( const filter of selected_filter_list ) {
398
+ await expect (
399
+ page . locator ( "#sidebar-positioner" ) . getByText ( filter )
400
+ ) . toHaveCount ( 0 ) ;
401
+ }
402
+ for ( let i = 0 ; i < filters . length ; i ++ ) {
403
+ await page . getByText ( filterRegex ( filters [ i ] ) ) . dispatchEvent ( "click" ) ;
404
+ await expect (
405
+ getNamedFilterButton ( page , selected_filter_list [ i ] ) . getByRole ( "checkbox" )
406
+ ) . not . toBeChecked ( ) ;
407
+ await page . locator ( "body" ) . click ( ) ;
363
408
}
364
409
}
365
410
/* eslint-enable sonarjs/no-duplicate-string -- Checking duplicate strings again*/
0 commit comments