From a158b7ed7db006a282c5d15609b6db9e77ddec97 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Thu, 13 Jan 2022 15:33:38 -0800 Subject: [PATCH] Fix implicit glob detection when ancestor directory contains `.` (#47418) --- src/compiler/commandLineParser.ts | 2 +- src/testRunner/unittests/config/tsconfigParsing.ts | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index df9ee17f32d..57cd2f3c309 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -3509,7 +3509,7 @@ namespace ts { ? WatchDirectoryFlags.Recursive : WatchDirectoryFlags.None }; } - if (isImplicitGlob(spec)) { + if (isImplicitGlob(spec.substring(spec.lastIndexOf(directorySeparator) + 1))) { return { key: useCaseSensitiveFileNames ? spec : toFileNameLowerCase(spec), flags: WatchDirectoryFlags.Recursive diff --git a/src/testRunner/unittests/config/tsconfigParsing.ts b/src/testRunner/unittests/config/tsconfigParsing.ts index 3c6dfb6a536..de793bffa4e 100644 --- a/src/testRunner/unittests/config/tsconfigParsing.ts +++ b/src/testRunner/unittests/config/tsconfigParsing.ts @@ -412,5 +412,14 @@ namespace ts { Diagnostics.Compiler_option_0_requires_a_value_of_type_1.code, /*noLocation*/ true); }); + + it("parses wildcard directories even when parent directories have dots", () => { + const parsed = parseConfigFileTextToJson("/foo.bar/tsconfig.json", JSON.stringify({ + include: ["src"] + })); + + const parsedCommand = parseJsonConfigFileContent(parsed.config, sys, "/foo.bar"); + assert.deepEqual(parsedCommand.wildcardDirectories, { "/foo.bar/src": WatchDirectoryFlags.Recursive }); + }); }); }