@@ -663,12 +663,15 @@ namespace ts.projectSystem {
663
663
options : { }
664
664
} ) ;
665
665
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 ) ;
667
669
668
670
service . openClientFile ( f1 . path ) ;
669
671
service . checkNumberOfProjects ( { configuredProjects : 1 , inferredProjects : 1 } ) ;
670
672
671
- checkProjectActualFiles ( configuredProjectAt ( service , 0 ) , [ upperCaseConfigFilePath ] ) ;
673
+ assert . equal ( project . pendingReload , ConfigFileProgramReloadLevel . None ) ; // External project referenced configured project is updated
674
+ checkProjectActualFiles ( project , [ upperCaseConfigFilePath ] ) ;
672
675
checkProjectActualFiles ( service . inferredProjects [ 0 ] , [ f1 . path ] ) ;
673
676
} ) ;
674
677
@@ -778,7 +781,7 @@ namespace ts.projectSystem {
778
781
779
782
// Add a tsconfig file
780
783
host . reloadFS ( filesWithConfig ) ;
781
- host . checkTimeoutQueueLengthAndRun ( 1 ) ;
784
+ host . checkTimeoutQueueLengthAndRun ( 2 ) ; // load configured project from disk + ensureProjectsForOpenFiles
782
785
783
786
projectService . checkNumberOfProjects ( { inferredProjects : 2 , configuredProjects : 1 } ) ;
784
787
assert . isTrue ( projectService . inferredProjects [ 0 ] . isOrphan ( ) ) ;
@@ -1229,7 +1232,7 @@ namespace ts.projectSystem {
1229
1232
1230
1233
1231
1234
host . reloadFS ( [ file1 , configFile , file2 , file3 , libFile ] ) ;
1232
- host . checkTimeoutQueueLengthAndRun ( 1 ) ;
1235
+ host . checkTimeoutQueueLengthAndRun ( 2 ) ; // load configured project from disk + ensureProjectsForOpenFiles
1233
1236
checkNumberOfConfiguredProjects ( projectService , 1 ) ;
1234
1237
checkNumberOfInferredProjects ( projectService , 1 ) ;
1235
1238
checkProjectActualFiles ( projectService . inferredProjects [ 0 ] , [ file2 . path , file3 . path , libFile . path ] ) ;
@@ -1893,7 +1896,7 @@ namespace ts.projectSystem {
1893
1896
checkProjectActualFiles ( projectService . inferredProjects [ 1 ] , [ file3 . path ] ) ;
1894
1897
1895
1898
host . reloadFS ( [ file1 , file2 , file3 , configFile ] ) ;
1896
- host . checkTimeoutQueueLengthAndRun ( 1 ) ;
1899
+ host . checkTimeoutQueueLengthAndRun ( 2 ) ; // load configured project from disk + ensureProjectsForOpenFiles
1897
1900
checkNumberOfProjects ( projectService , { configuredProjects : 1 , inferredProjects : 2 } ) ;
1898
1901
checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ file1 . path , file2 . path , file3 . path , configFile . path ] ) ;
1899
1902
assert . isTrue ( projectService . inferredProjects [ 0 ] . isOrphan ( ) ) ;
@@ -2973,10 +2976,7 @@ namespace ts.projectSystem {
2973
2976
checkNumberOfProjects ( projectService , { configuredProjects : 1 , externalProjects : 0 , inferredProjects : 0 } ) ;
2974
2977
2975
2978
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
2980
2980
2981
2981
host . reloadFS ( [ libFile , site ] ) ;
2982
2982
host . checkTimeoutQueueLengthAndRun ( 1 ) ;
@@ -3334,6 +3334,9 @@ namespace ts.projectSystem {
3334
3334
checkNumberOfProjects ( projectService , { configuredProjects : 1 } ) ;
3335
3335
3336
3336
const configuredProject = configuredProjectAt ( projectService , 0 ) ;
3337
+ // configured project is just created and not yet loaded
3338
+ checkProjectActualFiles ( configuredProject , emptyArray ) ;
3339
+ projectService . ensureInferredProjectsUpToDate_TestOnly ( ) ;
3337
3340
checkProjectActualFiles ( configuredProject , [ file1 . path , tsconfig . path ] ) ;
3338
3341
3339
3342
// Allow allowNonTsExtensions will be set to true for deferred extensions.
@@ -3975,6 +3978,8 @@ namespace ts.projectSystem {
3975
3978
options : { }
3976
3979
} ) ;
3977
3980
projectService . checkNumberOfProjects ( { configuredProjects : 1 } ) ;
3981
+ checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , emptyArray ) ; // Configured project created but not loaded till actually needed
3982
+ projectService . ensureInferredProjectsUpToDate_TestOnly ( ) ;
3978
3983
checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ f1 . path , tsconfig . path ] ) ;
3979
3984
3980
3985
// rename tsconfig.json back to lib.ts
@@ -4032,6 +4037,9 @@ namespace ts.projectSystem {
4032
4037
options : { }
4033
4038
} ) ;
4034
4039
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 ( ) ;
4035
4043
checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ cLib . path , cTsconfig . path ] ) ;
4036
4044
checkProjectActualFiles ( configuredProjectAt ( projectService , 1 ) , [ dLib . path , dTsconfig . path ] ) ;
4037
4045
@@ -4063,6 +4071,9 @@ namespace ts.projectSystem {
4063
4071
options : { }
4064
4072
} ) ;
4065
4073
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 ( ) ;
4066
4077
checkProjectActualFiles ( configuredProjectAt ( projectService , 0 ) , [ cLib . path , cTsconfig . path ] ) ;
4067
4078
checkProjectActualFiles ( configuredProjectAt ( projectService , 1 ) , [ dLib . path , dTsconfig . path ] ) ;
4068
4079
0 commit comments