Skip to content

Commit

Permalink
Add tests when realpath supresses the casing error
Browse files Browse the repository at this point in the history
  • Loading branch information
sheetalkamat committed Aug 18, 2022
1 parent 42165a1 commit 4a808aa
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/testRunner/tsconfig.json
Expand Up @@ -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",
Expand Down
18 changes: 18 additions & 0 deletions src/testRunner/unittests/tsc/forceConsistentCasingInFileNames.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


0 comments on commit 4a808aa

Please sign in to comment.