Add tests when realpath supresses the casing error

This commit is contained in:
Sheetal Nandi
2022-08-18 11:38:05 -07:00
parent 42165a183a
commit 4a808aa417
3 changed files with 78 additions and 0 deletions
+1
View File
@@ -151,6 +151,7 @@
"unittests/tsc/cancellationToken.ts",
"unittests/tsc/composite.ts",
"unittests/tsc/declarationEmit.ts",
"unittests/tsc/forceConsistentCasingInFileNames.ts",
"unittests/tsc/incremental.ts",
"unittests/tsc/listFilesOnly.ts",
"unittests/tsc/projectReferences.ts",
@@ -0,0 +1,18 @@
namespace ts {
describe("unittests:: tsc:: forceConsistentCasingInFileNames::", () => {
verifyTsc({
scenario: "forceConsistentCasingInFileNames",
subScenario: "with relative and non relative file resolutions",
commandLineArgs: ["/src/project/src/struct.d.ts", "--forceConsistentCasingInFileNames", "--explainFiles"],
fs: () => loadProjectFromFiles({
"/src/project/src/struct.d.ts": Utils.dedent`
import * as xs1 from "fp-ts/lib/Struct";
import * as xs2 from "fp-ts/lib/struct";
import * as xs3 from "./Struct";
import * as xs4 from "./struct";
`,
"/src/project/node_modules/fp-ts/lib/struct.d.ts": `export function foo(): void`,
}),
});
});
}
@@ -0,0 +1,59 @@
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/project/node_modules/fp-ts/lib/struct.d.ts]
export function foo(): void
//// [/src/project/src/struct.d.ts]
import * as xs1 from "fp-ts/lib/Struct";
import * as xs2 from "fp-ts/lib/struct";
import * as xs3 from "./Struct";
import * as xs4 from "./struct";
Output::
/lib/tsc /src/project/src/struct.d.ts --forceConsistentCasingInFileNames --explainFiles
src/project/src/struct.d.ts:3:22 - error TS1149: File name '/src/project/src/Struct.d.ts' differs from already included file name '/src/project/src/struct.d.ts' only in casing.
The file is in the program because:
Root file specified for compilation
Imported via "./Struct" from file '/src/project/src/struct.d.ts'
Imported via "./struct" from file '/src/project/src/struct.d.ts'
3 import * as xs3 from "./Struct";
   ~~~~~~~~~~
src/project/src/struct.d.ts:4:22
4 import * as xs4 from "./struct";
   ~~~~~~~~~~
File is included via import here.
lib/lib.d.ts
Default library for target 'es3'
src/project/node_modules/fp-ts/lib/struct.d.ts
Imported via "fp-ts/lib/Struct" from file 'src/project/src/struct.d.ts'
Imported via "fp-ts/lib/struct" from file 'src/project/src/struct.d.ts'
src/project/src/struct.d.ts
Root file specified for compilation
Imported via "./Struct" from file 'src/project/src/struct.d.ts'
Imported via "./struct" from file 'src/project/src/struct.d.ts'
Found 1 error in src/project/src/struct.d.ts:3
exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated