• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace ts.projectSystem {
2    describe("unittests:: tsserver:: maxNodeModuleJsDepth for inferred projects", () => {
3        it("should be set to 2 if the project has js root files", () => {
4            const file1: File = {
5                path: "/a/b/file1.js",
6                content: `var t = require("test"); t.`
7            };
8            const moduleFile: File = {
9                path: "/a/b/node_modules/test/index.js",
10                content: `var v = 10; module.exports = v;`
11            };
12
13            const host = createServerHost([file1, moduleFile]);
14            const projectService = createProjectService(host);
15            projectService.openClientFile(file1.path);
16
17            let project = projectService.inferredProjects[0];
18            let options = project.getCompilationSettings();
19            assert.isTrue(options.maxNodeModuleJsDepth === 2);
20
21            // Assert the option sticks
22            projectService.setCompilerOptionsForInferredProjects({ target: ScriptTarget.ES2016 });
23            project = projectService.inferredProjects[0];
24            options = project.getCompilationSettings();
25            assert.isTrue(options.maxNodeModuleJsDepth === 2);
26        });
27
28        it("should return to normal state when all js root files are removed from project", () => {
29            const file1 = {
30                path: "/a/file1.ts",
31                content: "let x =1;"
32            };
33            const file2 = {
34                path: "/a/file2.js",
35                content: "let x =1;"
36            };
37
38            const host = createServerHost([file1, file2, libFile]);
39            const projectService = createProjectService(host, { useSingleInferredProject: true });
40
41            projectService.openClientFile(file1.path);
42            checkNumberOfInferredProjects(projectService, 1);
43            let project = projectService.inferredProjects[0];
44            assert.isUndefined(project.getCompilationSettings().maxNodeModuleJsDepth);
45
46            projectService.openClientFile(file2.path);
47            project = projectService.inferredProjects[0];
48            assert.isTrue(project.getCompilationSettings().maxNodeModuleJsDepth === 2);
49
50            projectService.closeClientFile(file2.path);
51            project = projectService.inferredProjects[0];
52            assert.isUndefined(project.getCompilationSettings().maxNodeModuleJsDepth);
53        });
54    });
55}
56