@@ -993,5 +993,45 @@ namespace ts {
993993 checkNumberOfInferredProjects ( projectService , 1 ) ;
994994 checkProjectActualFiles ( projectService . inferredProjects [ 0 ] , [ file1 . path , modifiedFile2 . path , file3 . path ] ) ;
995995 } ) ;
996+
997+ it ( "deleted files affect project structure" , ( ) => {
998+ const file1 = {
999+ path : "/a/b/f1.ts" ,
1000+ content : `export * from "./f2"`
1001+ } ;
1002+ const file2 = {
1003+ path : "/a/b/f2.ts" ,
1004+ content : `export * from "../c/f3"`
1005+ } ;
1006+ const file3 = {
1007+ path : "/a/c/f3.ts" ,
1008+ content : `export let y = 1;`
1009+ } ;
1010+ const host = createServerHost ( [ file1 , file2 , file3 ] ) ;
1011+ const projectService = new server . ProjectService ( host , nullLogger , nullCancellationToken , /*useSingleInferredProject*/ false ) ;
1012+
1013+ projectService . openClientFile ( file1 . path ) ;
1014+
1015+ checkNumberOfInferredProjects ( projectService , 1 ) ;
1016+ checkNumberOfExternalProjects ( projectService , 0 ) ;
1017+ checkNumberOfConfiguredProjects ( projectService , 0 ) ;
1018+
1019+ checkProjectActualFiles ( projectService . inferredProjects [ 0 ] , [ file1 . path , file2 . path , file3 . path ] ) ;
1020+
1021+ projectService . openClientFile ( file3 . path ) ;
1022+ checkNumberOfInferredProjects ( projectService , 1 ) ;
1023+ checkNumberOfExternalProjects ( projectService , 0 ) ;
1024+ checkNumberOfConfiguredProjects ( projectService , 0 ) ;
1025+
1026+ host . reloadFS ( [ file1 , file3 ] ) ;
1027+ host . triggerFileWatcherCallback ( file2 . path , /*removed*/ true ) ;
1028+
1029+ checkNumberOfInferredProjects ( projectService , 2 ) ;
1030+ checkNumberOfExternalProjects ( projectService , 0 ) ;
1031+ checkNumberOfConfiguredProjects ( projectService , 0 ) ;
1032+
1033+ checkProjectActualFiles ( projectService . inferredProjects [ 0 ] , [ file1 . path ] ) ;
1034+ checkProjectActualFiles ( projectService . inferredProjects [ 1 ] , [ file3 . path ] ) ;
1035+ } ) ;
9961036 } ) ;
9971037}
0 commit comments