@@ -400,4 +400,43 @@ test.describe('Bad config.py/config.yaml file issues', () => {
400400 . first ( )
401401 . isVisible ( { timeout : 5_000 } )
402402 } )
403+
404+ test ( 'sushi example, bad config.py' , async ( { page, sharedCodeServer } ) => {
405+ const tempDir = await fs . mkdtemp (
406+ path . join ( os . tmpdir ( ) , 'vscode-test-tcloud-' ) ,
407+ )
408+ await fs . copy ( SUSHI_SOURCE_PATH , tempDir )
409+ await createPythonInterpreterSettingsSpecifier ( tempDir )
410+
411+ const configPyPath = path . join ( tempDir , 'config.py' )
412+ // Write an invalid Python to config.py
413+ await fs . writeFile ( configPyPath , 'invalid_python_code = [1, 2, 3' )
414+
415+ await page . goto (
416+ `http://127.0.1:${ sharedCodeServer . codeServerPort } /?folder=${ tempDir } ` ,
417+ )
418+ await page . waitForLoadState ( 'networkidle' )
419+
420+ // Open customers.sql model
421+ await page
422+ . getByRole ( 'treeitem' , { name : 'models' , exact : true } )
423+ . locator ( 'a' )
424+ . click ( )
425+ await page
426+ . getByRole ( 'treeitem' , { name : 'customers.sql' , exact : true } )
427+ . locator ( 'a' )
428+ . click ( )
429+
430+ // Expect the error to appear
431+ await page . waitForSelector ( 'text=Error creating context' )
432+
433+ // Open the problems view
434+ await runCommand ( page , 'View: Focus Problems' )
435+
436+ // Assert that the error is present in the problems view
437+ await page
438+ . getByText ( 'Python syntax error in config file:' , { exact : true } )
439+ . first ( )
440+ . isVisible ( { timeout : 5_000 } )
441+ } )
403442} )
0 commit comments