From 9f844c4b084b52451fe99b667c109d907ef118f2 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 31 Oct 2018 15:39:31 -0700 Subject: [PATCH] Test to verify that file with --out and case mismatch works with source map --- .../unittests/tsserverProjectSystem.ts | 46 ++++++++++++++++--- .../container/compositeExec/tsconfig.json | 3 +- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/testRunner/unittests/tsserverProjectSystem.ts b/src/testRunner/unittests/tsserverProjectSystem.ts index 9f569f46d4d..28d39ccf032 100644 --- a/src/testRunner/unittests/tsserverProjectSystem.ts +++ b/src/testRunner/unittests/tsserverProjectSystem.ts @@ -10481,13 +10481,15 @@ declare class TestLib { TestFSWithWatch.getTsBuildProjectFile(project, "index.ts"), ]; } - it("does not error on container only project", () => { - const project = "container"; - const containerLib = getProjectFiles("container/lib"); - const containerExec = getProjectFiles("container/exec"); - const containerCompositeExec = getProjectFiles("container/compositeExec"); - const containerConfig = TestFSWithWatch.getTsBuildProjectFile(project, "tsconfig.json"); - const files = [libFile, ...containerLib, ...containerExec, ...containerCompositeExec, containerConfig]; + + const project = "container"; + const containerLib = getProjectFiles("container/lib"); + const containerExec = getProjectFiles("container/exec"); + const containerCompositeExec = getProjectFiles("container/compositeExec"); + const containerConfig = TestFSWithWatch.getTsBuildProjectFile(project, "tsconfig.json"); + const files = [libFile, ...containerLib, ...containerExec, ...containerCompositeExec, containerConfig]; + + function createHost() { const host = createServerHost(files); // ts build should succeed @@ -10495,6 +10497,12 @@ declare class TestLib { solutionBuilder.buildAllProjects(); assert.equal(host.getOutput().length, 0); + return host; + } + + it("does not error on container only project", () => { + const host = createHost(); + // Open external project for the folder const session = createSession(host); const service = session.getProjectService(); @@ -10521,6 +10529,30 @@ declare class TestLib { assert.deepEqual(semanticDiagnostics, []); }); }); + + it("can successfully find references with --out options", () => { + const host = createHost(); + const session = createSession(host); + openFilesForSession([containerCompositeExec[1]], session); + const service = session.getProjectService(); + checkNumberOfProjects(service, { configuredProjects: 1 }); + const locationOfMyConst = protocolLocationFromSubstring(containerCompositeExec[1].content, "myConst"); + const response = session.executeCommandSeq({ + command: protocol.CommandTypes.Rename, + arguments: { + file: containerCompositeExec[1].path, + ...locationOfMyConst + } + }).response as protocol.RenameResponseBody; + + + const myConstLen = "myConst".length; + const locationOfMyConstInLib = protocolLocationFromSubstring(containerLib[1].content, "myConst"); + assert.deepEqual(response.locs, [ + { file: containerCompositeExec[1].path, locs: [{ start: locationOfMyConst, end: { line: locationOfMyConst.line, offset: locationOfMyConst.offset + myConstLen } }] }, + { file: containerLib[1].path, locs: [{ start: locationOfMyConstInLib, end: { line: locationOfMyConstInLib.line, offset: locationOfMyConstInLib.offset + myConstLen } }] } + ]); + }); }); describe("tsserverProjectSystem duplicate packages", () => { diff --git a/tests/projects/container/compositeExec/tsconfig.json b/tests/projects/container/compositeExec/tsconfig.json index f28a9e44eee..4f44b8a562d 100644 --- a/tests/projects/container/compositeExec/tsconfig.json +++ b/tests/projects/container/compositeExec/tsconfig.json @@ -1,7 +1,8 @@ { "compilerOptions": { "outFile": "../built/local/compositeExec.js", - "composite": true + "composite": true, + "declarationMap": true }, "files": [ "index.ts"