1+ import { test , expect } from "../fixtures"
2+ import { modKey } from "../utils"
3+
4+ const expanded = async ( el : { getAttribute : ( name : string ) => Promise < string | null > } ) => {
5+ const value = await el . getAttribute ( "aria-expanded" )
6+ if ( value !== "true" && value !== "false" ) throw new Error ( `Expected aria-expanded to be true|false, got: ${ value } ` )
7+ return value === "true"
8+ }
9+
10+ test ( "review panel can be toggled via keybind" , async ( { page, gotoSession } ) => {
11+ await gotoSession ( )
12+
13+ const treeToggle = page . getByRole ( "button" , { name : "Toggle file tree" } ) . first ( )
14+ await expect ( treeToggle ) . toBeVisible ( )
15+ if ( await expanded ( treeToggle ) ) await treeToggle . click ( )
16+ await expect ( treeToggle ) . toHaveAttribute ( "aria-expanded" , "false" )
17+
18+ const reviewToggle = page . getByRole ( "button" , { name : "Toggle review" } ) . first ( )
19+ await expect ( reviewToggle ) . toBeVisible ( )
20+ if ( await expanded ( reviewToggle ) ) await reviewToggle . click ( )
21+ await expect ( reviewToggle ) . toHaveAttribute ( "aria-expanded" , "false" )
22+ await expect ( page . locator ( "#review-panel" ) ) . toHaveCount ( 0 )
23+
24+ await page . keyboard . press ( `${ modKey } +Shift+R` )
25+ await expect ( reviewToggle ) . toHaveAttribute ( "aria-expanded" , "true" )
26+ await expect ( page . locator ( "#review-panel" ) ) . toBeVisible ( )
27+
28+ await page . keyboard . press ( `${ modKey } +Shift+R` )
29+ await expect ( reviewToggle ) . toHaveAttribute ( "aria-expanded" , "false" )
30+ await expect ( page . locator ( "#review-panel" ) ) . toHaveCount ( 0 )
31+ } )
0 commit comments