@@ -2332,6 +2332,50 @@ namespace ts.projectSystem {
2332
2332
const navbar = projectService . externalProjects [ 0 ] . getLanguageService ( /*ensureSynchronized*/ false ) . getNavigationBarItems ( f1 . path ) ;
2333
2333
assert . equal ( navbar [ 0 ] . spans [ 0 ] . length , f1 . content . length ) ;
2334
2334
} ) ;
2335
+
2336
+ it ( "deleting config file opened from the external project works" , ( ) => {
2337
+ const site = {
2338
+ path : "/user/someuser/project/js/site.js" ,
2339
+ content : ""
2340
+ } ;
2341
+ const configFile = {
2342
+ path : "/user/someuser/project/tsconfig.json" ,
2343
+ content : "{}"
2344
+ } ;
2345
+ const projectFileName = "/user/someuser/project/WebApplication6.csproj" ;
2346
+ const host = createServerHost ( [ libFile , site , configFile ] ) ;
2347
+ const projectService = createProjectService ( host ) ;
2348
+
2349
+ const externalProject : protocol . ExternalProject = {
2350
+ projectFileName,
2351
+ rootFiles : [ toExternalFile ( site . path ) , toExternalFile ( configFile . path ) ] ,
2352
+ options : { allowJs : false } ,
2353
+ typeAcquisition : { "include" : [ ] }
2354
+ } ;
2355
+
2356
+ projectService . openExternalProjects ( [ externalProject ] ) ;
2357
+
2358
+ let knownProjects = projectService . synchronizeProjectList ( [ ] ) ;
2359
+ checkNumberOfProjects ( projectService , { configuredProjects : 1 , externalProjects : 0 , inferredProjects : 0 } ) ;
2360
+
2361
+ const configProject = projectService . configuredProjects [ 0 ] ;
2362
+ checkProjectActualFiles ( configProject , [ libFile . path ] ) ;
2363
+
2364
+ const diagnostics = configProject . getAllProjectErrors ( ) ;
2365
+ assert . equal ( diagnostics [ 0 ] . code , Diagnostics . No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2 . code ) ;
2366
+
2367
+ host . reloadFS ( [ libFile , site ] ) ;
2368
+ host . triggerFileWatcherCallback ( configFile . path , FileWatcherEventKind . Deleted ) ;
2369
+
2370
+ knownProjects = projectService . synchronizeProjectList ( map ( knownProjects , proj => proj . info ) ) ;
2371
+ checkNumberOfProjects ( projectService , { configuredProjects : 0 , externalProjects : 0 , inferredProjects : 0 } ) ;
2372
+
2373
+ externalProject . rootFiles . length = 1 ;
2374
+ projectService . openExternalProjects ( [ externalProject ] ) ;
2375
+
2376
+ checkNumberOfProjects ( projectService , { configuredProjects : 0 , externalProjects : 1 , inferredProjects : 0 } ) ;
2377
+ checkProjectActualFiles ( projectService . externalProjects [ 0 ] , [ site . path , libFile . path ] ) ;
2378
+ } ) ;
2335
2379
} ) ;
2336
2380
2337
2381
describe ( "Proper errors" , ( ) => {
0 commit comments