@@ -461,15 +461,39 @@ test("capture dashboard screenshot", async ({ page }) => {
461461 await page . getByRole ( "tab" , { name : / p u l l r e q u e s t s / i } ) . click ( ) ;
462462 await page . getByRole ( "tab" , { name : / p u l l r e q u e s t s / i, selected : true } ) . waitFor ( ) ;
463463
464- // Wait for repo group headers to render (visible even when collapsed)
465- await page . getByText ( "acme-corp/web-platform" ) . first ( ) . waitFor ( ) ;
464+ // Expand several repo groups for a richer screenshot
465+ const reposToExpand = [ "acme-corp/web-platform" , "openstack/nova" , "acme-corp/api-gateway" ] ;
466466
467- // Expand a repo group by clicking its header button (scoped to avoid notification bell)
468- const repoGroupBtn = page . getByRole ( "button" , { expanded : false } ) . filter ( { hasText : "acme-corp/web-platform" } ) ;
469- if ( await repoGroupBtn . isVisible ( ) ) {
470- await repoGroupBtn . click ( ) ;
471- await page . getByRole ( "button" , { expanded : true } ) . filter ( { hasText : "acme-corp/web-platform" } ) . waitFor ( ) ;
467+ await page . getByText ( "acme-corp/web-platform" ) . first ( ) . waitFor ( ) ;
468+ for ( const repo of reposToExpand ) {
469+ const btn = page . getByRole ( "button" , { expanded : false } ) . filter ( { hasText : repo } ) ;
470+ if ( await btn . isVisible ( ) ) {
471+ await btn . click ( ) ;
472+ await page . getByRole ( "button" , { expanded : true } ) . filter ( { hasText : repo } ) . waitFor ( ) ;
473+ }
472474 }
473475
474476 await page . screenshot ( { path : "docs/dashboard-screenshot.png" } ) ;
477+
478+ // Switch to compact density via settings UI (client-side nav to preserve store state)
479+ await page . getByRole ( "link" , { name : "Settings" } ) . click ( ) ;
480+ await page . getByRole ( "button" , { name : / v i e w d e n s i t y : c o m p a c t / i } ) . waitFor ( ) ;
481+ await page . getByRole ( "button" , { name : / v i e w d e n s i t y : c o m p a c t / i } ) . click ( ) ;
482+ await page . getByRole ( "button" , { name : / v i e w d e n s i t y : c o m p a c t / i, pressed : true } ) . waitFor ( ) ;
483+
484+ // Navigate back to dashboard (client-side, no full reload)
485+ await page . getByRole ( "link" , { name : "Back to dashboard" } ) . click ( ) ;
486+ await page . getByRole ( "tablist" ) . waitFor ( ) ;
487+ await page . getByRole ( "tab" , { name : / p u l l r e q u e s t s / i } ) . click ( ) ;
488+ await page . getByRole ( "tab" , { name : / p u l l r e q u e s t s / i, selected : true } ) . waitFor ( ) ;
489+ await page . getByText ( "acme-corp/web-platform" ) . first ( ) . waitFor ( ) ;
490+ for ( const repo of reposToExpand ) {
491+ const btn = page . getByRole ( "button" , { expanded : false } ) . filter ( { hasText : repo } ) ;
492+ if ( await btn . isVisible ( ) ) {
493+ await btn . click ( ) ;
494+ await page . getByRole ( "button" , { expanded : true } ) . filter ( { hasText : repo } ) . waitFor ( ) ;
495+ }
496+ }
497+
498+ await page . screenshot ( { path : "docs/dashboard-screenshot-compact.png" } ) ;
475499} ) ;
0 commit comments