From 9daf635e5e612d7b7e2d110e258e0336e23978d9 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 16 Sep 2015 11:50:12 -0700 Subject: [PATCH] Verify and fix scenario when .js and .ts files with same name are present and tsconfig doesnt specify any filenames --- src/compiler/commandLineParser.ts | 2 +- src/harness/projectsRunner.ts | 8 +++++++- .../amd/SameNameFilesNotSpecified/a.d.ts | 1 + .../amd/SameNameFilesNotSpecified/a.js | 1 + ...sFileCompilationSameNameFilesNotSpecified.json | 15 +++++++++++++++ .../node/SameNameFilesNotSpecified/a.d.ts | 1 + .../node/SameNameFilesNotSpecified/a.js | 1 + ...sFileCompilationSameNameFilesNotSpecified.json | 15 +++++++++++++++ ...sFileCompilationSameNameFilesNotSpecified.json | 7 +++++++ .../SameNameFilesNotSpecified/a.js | 1 + .../SameNameFilesNotSpecified/a.ts | 1 + .../SameNameFilesNotSpecified/tsconfig.json | 0 12 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.d.ts create mode 100644 tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.js create mode 100644 tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/jsFileCompilationSameNameFilesNotSpecified.json create mode 100644 tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.d.ts create mode 100644 tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.js create mode 100644 tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/jsFileCompilationSameNameFilesNotSpecified.json create mode 100644 tests/cases/project/jsFileCompilationSameNameFilesNotSpecified.json create mode 100644 tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.js create mode 100644 tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.ts create mode 100644 tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/tsconfig.json diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 7b776f8c6e1..9283f8d939d 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -474,7 +474,7 @@ namespace ts { } else { let exclude = json["exclude"] instanceof Array ? map(json["exclude"], normalizeSlashes) : undefined; - let sysFiles = host.readDirectory(basePath, ".ts", exclude).concat(host.readDirectory(basePath, ".tsx", exclude)); + let sysFiles = host.readDirectory(basePath, ".ts", exclude).concat(host.readDirectory(basePath, ".tsx", exclude)).concat(host.readDirectory(basePath, ".js", exclude)); for (let i = 0; i < sysFiles.length; i++) { let name = sysFiles[i]; if (fileExtensionIs(name, ".js")) { diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index 8b30a8be37b..32e61cb8d7b 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -263,7 +263,13 @@ class ProjectRunner extends RunnerBase { } function readDirectory(rootDir: string, extension: string, exclude: string[]): string[] { - return Harness.IO.readDirectory(getFileNameInTheProjectTest(rootDir), extension, exclude); + let harnessReadDirectoryResult = Harness.IO.readDirectory(getFileNameInTheProjectTest(rootDir), extension, exclude); + let result: string[] = []; + for (let i = 0; i < harnessReadDirectoryResult.length; i++) { + result[i] = ts.getRelativePathToDirectoryOrUrl(testCase.projectRoot, harnessReadDirectoryResult[i], + getCurrentDirectory(), Harness.Compiler.getCanonicalFileName, /*isAbsolutePathAnUrl*/ false); + } + return result; } function fileExists(fileName: string): boolean { diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.d.ts b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.d.ts new file mode 100644 index 00000000000..4c0b8989316 --- /dev/null +++ b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.d.ts @@ -0,0 +1 @@ +declare var test: number; diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.js b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.js new file mode 100644 index 00000000000..e757934f20c --- /dev/null +++ b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/SameNameFilesNotSpecified/a.js @@ -0,0 +1 @@ +var test = 10; diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/jsFileCompilationSameNameFilesNotSpecified.json b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/jsFileCompilationSameNameFilesNotSpecified.json new file mode 100644 index 00000000000..2b4d6b2b35a --- /dev/null +++ b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/amd/jsFileCompilationSameNameFilesNotSpecified.json @@ -0,0 +1,15 @@ +{ + "scenario": "Verify when same named .ts and .js file exists in the folder but no file is specified in tsconfig.json", + "projectRoot": "tests/cases/projects/jsFileCompilation", + "baselineCheck": true, + "declaration": true, + "project": "SameNameFilesNotSpecified", + "resolvedInputFiles": [ + "lib.d.ts", + "SameNameFilesNotSpecified/a.ts" + ], + "emittedFiles": [ + "SameNameFilesNotSpecified/a.js", + "SameNameFilesNotSpecified/a.d.ts" + ] +} \ No newline at end of file diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.d.ts b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.d.ts new file mode 100644 index 00000000000..4c0b8989316 --- /dev/null +++ b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.d.ts @@ -0,0 +1 @@ +declare var test: number; diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.js b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.js new file mode 100644 index 00000000000..e757934f20c --- /dev/null +++ b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/SameNameFilesNotSpecified/a.js @@ -0,0 +1 @@ +var test = 10; diff --git a/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/jsFileCompilationSameNameFilesNotSpecified.json b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/jsFileCompilationSameNameFilesNotSpecified.json new file mode 100644 index 00000000000..2b4d6b2b35a --- /dev/null +++ b/tests/baselines/reference/project/jsFileCompilationSameNameFilesNotSpecified/node/jsFileCompilationSameNameFilesNotSpecified.json @@ -0,0 +1,15 @@ +{ + "scenario": "Verify when same named .ts and .js file exists in the folder but no file is specified in tsconfig.json", + "projectRoot": "tests/cases/projects/jsFileCompilation", + "baselineCheck": true, + "declaration": true, + "project": "SameNameFilesNotSpecified", + "resolvedInputFiles": [ + "lib.d.ts", + "SameNameFilesNotSpecified/a.ts" + ], + "emittedFiles": [ + "SameNameFilesNotSpecified/a.js", + "SameNameFilesNotSpecified/a.d.ts" + ] +} \ No newline at end of file diff --git a/tests/cases/project/jsFileCompilationSameNameFilesNotSpecified.json b/tests/cases/project/jsFileCompilationSameNameFilesNotSpecified.json new file mode 100644 index 00000000000..75582ff4402 --- /dev/null +++ b/tests/cases/project/jsFileCompilationSameNameFilesNotSpecified.json @@ -0,0 +1,7 @@ +{ + "scenario": "Verify when same named .ts and .js file exists in the folder but no file is specified in tsconfig.json", + "projectRoot": "tests/cases/projects/jsFileCompilation", + "baselineCheck": true, + "declaration": true, + "project": "SameNameFilesNotSpecified" +} \ No newline at end of file diff --git a/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.js b/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.js new file mode 100644 index 00000000000..bbad8b11e3d --- /dev/null +++ b/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.js @@ -0,0 +1 @@ +var test1 = 10; // Shouldnt get compiled \ No newline at end of file diff --git a/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.ts b/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.ts new file mode 100644 index 00000000000..6d820a0093e --- /dev/null +++ b/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/a.ts @@ -0,0 +1 @@ +var test = 10; \ No newline at end of file diff --git a/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/tsconfig.json b/tests/cases/projects/jsFileCompilation/SameNameFilesNotSpecified/tsconfig.json new file mode 100644 index 00000000000..e69de29bb2d