@@ -663,12 +663,15 @@ namespace ts.projectSystem {
663663 options : { }
664664 } ) ;
665665 service . checkNumberOfProjects ( { configuredProjects : 1 } ) ;
666- checkProjectActualFiles ( configuredProjectAt ( service , 0 ) , [ upperCaseConfigFilePath ] ) ;
666+ const project = service . configuredProjects . get ( config . path ) ! ;
667+ assert . equal ( project . pendingReload , ConfigFileProgramReloadLevel . Full ) ; // External project referenced configured project pending to be reloaded
668+ checkProjectActualFiles ( project , emptyArray ) ;
667669
668670 service . openClientFile ( f1 . path ) ;
669671 service . checkNumberOfProjects ( { configuredProjects : 1 , inferredProjects : 1 } ) ;
670672
671- checkProjectActualFiles ( configuredProjectAt ( service , 0 ) , [ upperCaseConfigFilePath ] ) ;
673+ assert . equal ( project . pendingReload , ConfigFileProgramReloadLevel . None ) ; // External project referenced configured project is updated
674+ checkProjectActualFiles ( project , [ upperCaseConfigFilePath ] ) ;
672675 checkProjectActualFiles ( service . inferredProjects [ 0 ] , [ f1 . path ] ) ;
673676 } ) ;
674677
@@ -778,7 +781,7 @@ namespace ts.projectSystem {
778781
779782 // Add a tsconfig file
780783 host . reloadFS ( filesWithConfig ) ;
781- host . checkTimeoutQueueLengthAndRun ( 1 ) ;
784+ host . checkTimeoutQueueLengthAndRun ( 2 ) ; // load configured project from disk + ensureProjectsForOpenFiles
782785
783786 projectService . checkNumberOfProjects ( { inferredProjects : 2 , configuredProjects : 1 } ) ;
784787 assert . isTrue ( projectService . inferredProjects [ 0 ] . isOrphan ( ) ) ;
@@ -1229,7 +1232,7 @@ namespace ts.projectSystem {
12291232
12301233
12311234 host . reloadFS ( [ file1 , configFile , file2 , file3 , libFile ] ) ;
1232- host . checkTimeoutQueueLengthAndRun ( 1 ) ;
1235+ host . checkTimeoutQueueLengthAndRun ( 2 ) ; // load configured project from disk + ensureProjectsForOpenFiles
12331236 checkNumberOfConfiguredProjects ( projectService , 1 ) ;
12341237 checkNumberOfInferredProjects ( projectService , 1 ) ;
12351238 checkProjectActualFiles ( projectService . inferredProjects [ 0 ] , [ file2 . path , file3 . path , libFile . path ] ) ;
@@ -1893,7 +1896,7 @@ namespace ts.projectSystem {
18931896 checkProjectActualFiles ( projectService . inferredProjects [ 1 ] , [ file3 . path ] ) ;
18941897
18951898 host . reloadFS ( [ file1 , file2 , file3 , configFile ] ) ;
1896- host . checkTimeoutQueueLengthAndRun ( 1 ) ;
1899+ host . checkTimeoutQueueLengthAndRun ( 2 ) ; // load configured project from disk + ensureProjectsForOpenFiles
18971900 checkNumberOfProjects ( projectService , { configuredProjects : 1 , inferredProjects : 2 } ) ;
18981901 checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ file1 . path , file2 . path , file3 . path , configFile . path ] ) ;
18991902 assert . isTrue ( projectService . inferredProjects [ 0 ] . isOrphan ( ) ) ;
@@ -2973,10 +2976,7 @@ namespace ts.projectSystem {
29732976 checkNumberOfProjects ( projectService , { configuredProjects : 1 , externalProjects : 0 , inferredProjects : 0 } ) ;
29742977
29752978 const configProject = configuredProjectAt ( projectService , 0 ) ;
2976- checkProjectActualFiles ( configProject , [ libFile . path , configFile . path ] ) ;
2977-
2978- const diagnostics = configProject . getAllProjectErrors ( ) ;
2979- 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 ) ;
2979+ checkProjectActualFiles ( configProject , [ ] ) ; // Since no files opened from this project, its not loaded
29802980
29812981 host . reloadFS ( [ libFile , site ] ) ;
29822982 host . checkTimeoutQueueLengthAndRun ( 1 ) ;
@@ -3334,6 +3334,9 @@ namespace ts.projectSystem {
33343334 checkNumberOfProjects ( projectService , { configuredProjects : 1 } ) ;
33353335
33363336 const configuredProject = configuredProjectAt ( projectService , 0 ) ;
3337+ // configured project is just created and not yet loaded
3338+ checkProjectActualFiles ( configuredProject , emptyArray ) ;
3339+ projectService . ensureInferredProjectsUpToDate_TestOnly ( ) ;
33373340 checkProjectActualFiles ( configuredProject , [ file1 . path , tsconfig . path ] ) ;
33383341
33393342 // Allow allowNonTsExtensions will be set to true for deferred extensions.
@@ -3975,6 +3978,8 @@ namespace ts.projectSystem {
39753978 options : { }
39763979 } ) ;
39773980 projectService . checkNumberOfProjects ( { configuredProjects : 1 } ) ;
3981+ checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , emptyArray ) ; // Configured project created but not loaded till actually needed
3982+ projectService . ensureInferredProjectsUpToDate_TestOnly ( ) ;
39783983 checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ f1 . path , tsconfig . path ] ) ;
39793984
39803985 // rename tsconfig.json back to lib.ts
@@ -4032,6 +4037,9 @@ namespace ts.projectSystem {
40324037 options : { }
40334038 } ) ;
40344039 projectService . checkNumberOfProjects ( { configuredProjects : 2 } ) ;
4040+ checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , emptyArray ) ; // Configured project created but not loaded till actually needed
4041+ checkProjectActualFiles ( configuredProjectAt ( projectService , 1 ) , emptyArray ) ; // Configured project created but not loaded till actually needed
4042+ projectService . ensureInferredProjectsUpToDate_TestOnly ( ) ;
40354043 checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ cLib . path , cTsconfig . path ] ) ;
40364044 checkProjectActualFiles ( configuredProjectAt ( projectService , 1 ) , [ dLib . path , dTsconfig . path ] ) ;
40374045
@@ -4063,6 +4071,9 @@ namespace ts.projectSystem {
40634071 options : { }
40644072 } ) ;
40654073 projectService . checkNumberOfProjects ( { configuredProjects : 2 } ) ;
4074+ checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , emptyArray ) ; // Configured project created but not loaded till actually needed
4075+ checkProjectActualFiles ( configuredProjectAt ( projectService , 1 ) , emptyArray ) ; // Configured project created but not loaded till actually needed
4076+ projectService . ensureInferredProjectsUpToDate_TestOnly ( ) ;
40664077 checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ cLib . path , cTsconfig . path ] ) ;
40674078 checkProjectActualFiles ( configuredProjectAt ( projectService , 1 ) , [ dLib . path , dTsconfig . path ] ) ;
40684079
0 commit comments