@@ -101,3 +101,56 @@ test("cmd+f opens text viewer search while prompt is focused", async ({ page, go
101101 await expect ( findInput ) . toBeVisible ( )
102102 await expect ( findInput ) . toBeFocused ( )
103103} )
104+
105+ test ( "cmd+f opens text viewer search while prompt is not focused" , async ( { page, gotoSession } ) => {
106+ await gotoSession ( )
107+
108+ await page . locator ( promptSelector ) . click ( )
109+ await page . keyboard . type ( "/open" )
110+
111+ const command = page . locator ( '[data-slash-id="file.open"]' ) . first ( )
112+ await expect ( command ) . toBeVisible ( )
113+ await page . keyboard . press ( "Enter" )
114+
115+ const dialog = page
116+ . getByRole ( "dialog" )
117+ . filter ( { has : page . getByPlaceholder ( / s e a r c h f i l e s / i) } )
118+ . first ( )
119+ await expect ( dialog ) . toBeVisible ( )
120+
121+ const input = dialog . getByRole ( "textbox" ) . first ( )
122+ await input . fill ( "package.json" )
123+
124+ const items = dialog . locator ( '[data-slot="list-item"][data-key^="file:"]' )
125+ let index = - 1
126+ await expect
127+ . poll (
128+ async ( ) => {
129+ const keys = await items . evaluateAll ( ( nodes ) => nodes . map ( ( node ) => node . getAttribute ( "data-key" ) ?? "" ) )
130+ index = keys . findIndex ( ( key ) => / p a c k a g e s [ \\ / ] + a p p [ \\ / ] + p a c k a g e \. j s o n $ / i. test ( key . replace ( / ^ f i l e : / , "" ) ) )
131+ return index >= 0
132+ } ,
133+ { timeout : 30_000 } ,
134+ )
135+ . toBe ( true )
136+
137+ const item = items . nth ( index )
138+ await expect ( item ) . toBeVisible ( )
139+ await item . click ( )
140+
141+ await expect ( dialog ) . toHaveCount ( 0 )
142+
143+ const tab = page . getByRole ( "tab" , { name : "package.json" } )
144+ await expect ( tab ) . toBeVisible ( )
145+ await tab . click ( )
146+
147+ const viewer = page . locator ( '[data-component="file"][data-mode="text"]' ) . first ( )
148+ await expect ( viewer ) . toBeVisible ( )
149+
150+ await viewer . click ( )
151+ await page . keyboard . press ( `${ modKey } +f` )
152+
153+ const findInput = page . getByPlaceholder ( "Find" )
154+ await expect ( findInput ) . toBeVisible ( )
155+ await expect ( findInput ) . toBeFocused ( )
156+ } )
0 commit comments