@@ -35,9 +35,10 @@ export const test = base.extend<TestFixtures>({
3535 "--disable-workspace-trust" ,
3636 "--disable-telemetry" ,
3737 "--disable-crash-reporter" ,
38- "--headless" ,
3938 "--disable-gpu" ,
4039 "--disable-dev-shm-usage" ,
40+ // Add CI-specific args for better Docker compatibility
41+ ...( process . env . CI ? [ "--no-sandbox" , "--disable-setuid-sandbox" ] : [ ] ) ,
4142 `--extensionDevelopmentPath=${ path . resolve ( __dirname , ".." , ".." , ".." , "src" ) } ` ,
4243 `--extensions-dir=${ path . join ( defaultCachePath , "extensions" ) } ` ,
4344 `--user-data-dir=${ path . join ( defaultCachePath , "user-data" ) } ` ,
@@ -46,7 +47,26 @@ export const test = base.extend<TestFixtures>({
4647 ] ,
4748 } )
4849
49- const workbox = await electronApp . firstWindow ( )
50+ // Add better error handling and logging for firstWindow()
51+ console . log ( "🔄 Attempting to get VS Code first window..." )
52+ let workbox : Page
53+ try {
54+ workbox = await electronApp . firstWindow ( )
55+ console . log ( "✅ Successfully got VS Code first window" )
56+ } catch ( error ) {
57+ console . error ( "❌ Failed to get VS Code first window:" , error )
58+ console . log ( "📊 Electron app context info:" )
59+ console . log ( " - Process count:" , electronApp . context ( ) . pages ( ) . length )
60+
61+ // Try to get any available window
62+ const pages = electronApp . context ( ) . pages ( )
63+ if ( pages . length > 0 ) {
64+ console . log ( "🔄 Using first available page instead..." )
65+ workbox = pages [ 0 ]
66+ } else {
67+ throw new Error ( `No VS Code window available. Original error: ${ error } ` )
68+ }
69+ }
5070 await workbox . waitForLoadState ( "domcontentloaded" )
5171
5272 try {
0 commit comments