From 60d39d7f18d831706e2b067d5a8079cdd023291a Mon Sep 17 00:00:00 2001 From: Alexader Date: Fri, 11 May 2018 21:27:40 +0300 Subject: [PATCH] add tests --- src/compiler/commandLineParser.ts | 5 ++--- src/harness/unittests/tsconfigParsing.ts | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index d9bfc93b78d..8b963409ab6 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -1610,10 +1610,9 @@ namespace ts { else if (raw.compilerOptions) { const outDir = raw.compilerOptions.outDir; const declarationDir = raw.compilerOptions.declarationDir; - const excludeDirs = [outDir, declarationDir].filter(dir => dir); - if (excludeDirs.length) { - excludeSpecs = excludeDirs; + if (outDir || declarationDir) { + excludeSpecs = [outDir, declarationDir].filter(d => !!d); } } diff --git a/src/harness/unittests/tsconfigParsing.ts b/src/harness/unittests/tsconfigParsing.ts index f1b4d526581..7a47481b88d 100644 --- a/src/harness/unittests/tsconfigParsing.ts +++ b/src/harness/unittests/tsconfigParsing.ts @@ -217,6 +217,29 @@ namespace ts { assertParseFileList(tsconfigWithExclude, "tsconfig.json", rootDir, allFiles, allFiles); }); + it("exclude declarationDir unless overridden", () => { + const tsconfigWithoutExclude = + `{ + "compilerOptions": { + "declarationDir": "declarations" + } + }`; + const tsconfigWithExclude = + `{ + "compilerOptions": { + "declarationDir": "declarations" + }, + "exclude": [ "types" ] + }`; + + const rootDir = "/"; + const allFiles = ["/declarations/a.d.ts", "/a.ts"]; + const expectedFiles = ["/a.ts"]; + + assertParseFileList(tsconfigWithoutExclude, "tsconfig.json", rootDir, allFiles, expectedFiles); + assertParseFileList(tsconfigWithExclude, "tsconfig.json", rootDir, allFiles, allFiles); + }); + it("implicitly exclude common package folders", () => { assertParseFileList( `{}`,