Add test for module resolution with package json containing main field referencing js file in sub directory

This commit is contained in:
Sheetal Nandi
2018-05-14 13:06:34 -07:00
parent 560371d7a0
commit 7be85958a1
6 changed files with 92 additions and 0 deletions
@@ -0,0 +1,14 @@
/index.ts(1,19): error TS2307: Cannot find module 'foo'.
==== /node_modules/foo/package.json (0 errors) ====
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
==== /node_modules/foo/src/index.d.ts (0 errors) ====
export const x: number;
==== /index.ts (1 errors) ====
import { x } from "foo";
~~~~~
!!! error TS2307: Cannot find module 'foo'.
@@ -0,0 +1,15 @@
//// [tests/cases/compiler/moduleResolution_packageJson_yesAtPackageRoot_mainFieldInSubDirectory.ts] ////
//// [package.json]
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
//// [index.d.ts]
export const x: number;
//// [index.ts]
import { x } from "foo";
//// [index.js]
"use strict";
exports.__esModule = true;
@@ -0,0 +1,8 @@
=== /node_modules/foo/src/index.d.ts ===
export const x: number;
>x : Symbol(x, Decl(index.d.ts, 0, 12))
=== /index.ts ===
import { x } from "foo";
>x : Symbol(x, Decl(index.ts, 0, 8))
@@ -0,0 +1,37 @@
[
"======== Resolving module 'foo' from '/index.ts'. ========",
"Module resolution kind is not specified, using 'NodeJs'.",
"Loading module 'foo' from 'node_modules' folder, target file type 'TypeScript'.",
"'package.json' does not have a 'typings' field.",
"'package.json' does not have a 'types' field.",
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/i.d.ts@1.2.3'.",
"File '/node_modules/foo.ts' does not exist.",
"File '/node_modules/foo.tsx' does not exist.",
"File '/node_modules/foo.d.ts' does not exist.",
"'package.json' does not have a 'typings' field.",
"'package.json' does not have a 'types' field.",
"File '/node_modules/foo/index.ts' does not exist.",
"File '/node_modules/foo/index.tsx' does not exist.",
"File '/node_modules/foo/index.d.ts' does not exist.",
"Directory '/node_modules/@types' does not exist, skipping all lookups in it.",
"Loading module 'foo' from 'node_modules' folder, target file type 'JavaScript'.",
"'package.json' does not have a 'typings' field.",
"'package.json' does not have a 'types' field.",
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
"Found 'package.json' at '/node_modules/foo/package.json'. Package ID is 'foo/src/i.d.ts@1.2.3'.",
"File '/node_modules/foo.js' does not exist.",
"File '/node_modules/foo.jsx' does not exist.",
"'package.json' has 'main' field 'src/index.js' that references '/node_modules/foo/src/index.js'.",
"File '/node_modules/foo/src/index.js' does not exist.",
"Loading module as file / folder, candidate module location '/node_modules/foo/src/index.js', target file type 'JavaScript'.",
"File '/node_modules/foo/src/index.js.js' does not exist.",
"File '/node_modules/foo/src/index.js.jsx' does not exist.",
"File name '/node_modules/foo/src/index.js' has a '.js' extension - stripping it.",
"File '/node_modules/foo/src/index.js' does not exist.",
"File '/node_modules/foo/src/index.jsx' does not exist.",
"Directory '/node_modules/foo/src/index.js' does not exist, skipping all lookups in it.",
"File '/node_modules/foo/index.js' does not exist.",
"File '/node_modules/foo/index.jsx' does not exist.",
"======== Module name 'foo' was not resolved. ========"
]
@@ -0,0 +1,8 @@
=== /node_modules/foo/src/index.d.ts ===
export const x: number;
>x : number
=== /index.ts ===
import { x } from "foo";
>x : any
@@ -0,0 +1,10 @@
// @traceResolution: true
// @Filename: /node_modules/foo/package.json
{ "name": "foo", "version": "1.2.3", "main": "src/index.js" }
// @Filename: /node_modules/foo/src/index.d.ts
export const x: number;
// @Filename: /index.ts
import { x } from "foo";