@@ -264,7 +264,7 @@ export async function testFilterPersistence(
264264 await page . getByText ( filterRegex ( testFilter ) ) . click ( ) ;
265265 const to_select = await getFirstFilterButton ( page ) ;
266266 await expect ( to_select . getByRole ( "checkbox" ) ) . not . toBeChecked ( ) ;
267- await to_select . getByRole ( "checkbox" ) . click ;
267+ await to_select . getByRole ( "checkbox" ) . click ( ) ;
268268 const filterName = ( await to_select . innerText ( ) ) . split ( "\n" ) [ 0 ] ; //MAY NEED TO ADD SOME CHECKING MECHANISM HERE
269269 await expect ( to_select . getByRole ( "checkbox" ) ) . toBeChecked ( ) ;
270270 await page . locator ( "body" ) . click ( ) ;
@@ -320,13 +320,15 @@ export async function testFilterCounts(
320320 console . log ( filter_numbers . map ( ( x ) => Number ( x ) ) ) ;
321321 return false ;
322322 }
323+ // Check the filter
323324 await filter_button . getByRole ( "checkbox" ) . dispatchEvent ( "click" ) ;
324325 await page . waitForLoadState ( "load" ) ;
326+ // Exit the filter menu
325327 await page . locator ( "body" ) . click ( ) ;
326328 await expect ( page . getByRole ( "checkbox" ) ) . toHaveCount ( 0 ) ;
329+ // Expect the displayed count of elements to be 0
327330 const firstNumber =
328331 filter_number <= elements_per_page ? filter_number : elements_per_page ;
329-
330332 await expect (
331333 page . getByText ( "Results 1 - " + firstNumber + " of " + filter_number )
332334 ) . toBeVisible ( ) ;
@@ -341,25 +343,68 @@ export async function testFilterBubbles(
341343) : Promise < void > {
342344 page . goto ( tab . url ) ;
343345 for ( const filter of filters ) {
346+ // Select a filter
344347 await page . getByText ( filterRegex ( filter ) ) . dispatchEvent ( "click" ) ;
345- //await page.waitForTimeout(500);
346348 await page . waitForLoadState ( "load" ) ;
347349 const firstFilterButton = getFirstFilterButton ( page ) ;
350+ // Get the name of the selected filter
348351 const firstFilterName =
349352 ( await firstFilterButton . innerText ( ) )
350353 . split ( "\n" )
351354 . find ( ( x ) => x . length > 0 ) ?? "" ;
355+ // Click the selected filter and exit the filter menu
352356 await firstFilterButton . getByRole ( "checkbox" ) . click ( ) ;
353357 await page . waitForLoadState ( "load" ) ;
354- await page . keyboard . press ( "Escape" ) ;
358+ await page . locator ( "body" ) . click ( ) ;
355359 await expect ( page . getByRole ( "checkbox" ) ) . toHaveCount ( 0 ) ;
360+ // Click the blue button
356361 const filterBlueButton = page
357362 . locator ( "#sidebar-positioner" )
358363 . getByText ( firstFilterName ) ;
359364 await expect ( filterBlueButton ) . toBeVisible ( ) ;
360365 await filterBlueButton . scrollIntoViewIfNeeded ( ) ;
361366 await filterBlueButton . dispatchEvent ( "click" ) ;
367+ // Expect the blue button to disappear when clicked
362368 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 ( ) ;
363408 }
364409}
365410/* eslint-enable sonarjs/no-duplicate-string -- Checking duplicate strings again*/
0 commit comments