From 9eb01bfe162fb139df561111e7232f638849d988 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Thu, 30 Jun 2016 13:50:10 -0700 Subject: [PATCH] more tests --- .../cases/unittests/tsserverProjectSystem.ts | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/cases/unittests/tsserverProjectSystem.ts b/tests/cases/unittests/tsserverProjectSystem.ts index f5432f5561e..45314181b9a 100644 --- a/tests/cases/unittests/tsserverProjectSystem.ts +++ b/tests/cases/unittests/tsserverProjectSystem.ts @@ -993,5 +993,45 @@ namespace ts { checkNumberOfInferredProjects(projectService, 1); checkProjectActualFiles(projectService.inferredProjects[0], [ file1.path, modifiedFile2.path, file3.path ]); }); + + it("deleted files affect project structure", () => { + const file1 = { + path: "/a/b/f1.ts", + content: `export * from "./f2"` + }; + const file2 = { + path: "/a/b/f2.ts", + content: `export * from "../c/f3"` + }; + const file3 = { + path: "/a/c/f3.ts", + content: `export let y = 1;` + }; + const host = createServerHost([file1, file2, file3]); + const projectService = new server.ProjectService(host, nullLogger, nullCancellationToken, /*useSingleInferredProject*/ false); + + projectService.openClientFile(file1.path); + + checkNumberOfInferredProjects(projectService, 1); + checkNumberOfExternalProjects(projectService, 0); + checkNumberOfConfiguredProjects(projectService, 0); + + checkProjectActualFiles(projectService.inferredProjects[0], [ file1.path, file2.path, file3.path ]); + + projectService.openClientFile(file3.path); + checkNumberOfInferredProjects(projectService, 1); + checkNumberOfExternalProjects(projectService, 0); + checkNumberOfConfiguredProjects(projectService, 0); + + host.reloadFS([file1, file3]); + host.triggerFileWatcherCallback(file2.path, /*removed*/ true); + + checkNumberOfInferredProjects(projectService, 2); + checkNumberOfExternalProjects(projectService, 0); + checkNumberOfConfiguredProjects(projectService, 0); + + checkProjectActualFiles(projectService.inferredProjects[0], [ file1.path ]); + checkProjectActualFiles(projectService.inferredProjects[1], [ file3.path ]); + }); }); } \ No newline at end of file