Skip to content

Commit 885b0e9

Browse files
committed
Added project tests for node_modules JavaScript searches
1 parent e9a0c56 commit 885b0e9

40 files changed

Lines changed: 488 additions & 0 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,4 @@ internal/
4949
**/.vscode
5050
!**/.vscode/tasks.json
5151
!tests/cases/projects/projectOption/**/node_modules
52+
!tests/cases/projects/NodeModulesSearch/**/*
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
define(["require", "exports", "m1"], function (require, exports, m1) {
2+
"use strict";
3+
m1.f1("test");
4+
m1.f2.a = 10;
5+
m1.f2.person.age = "10"; // Error: Should be number (if direct import of m2 made the m3 module visible).
6+
});
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
importHigher/root.ts(6,1): error TS2322: Type 'string' is not assignable to type 'number'.
2+
3+
4+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/importHigher/node_modules/m2/entry.js (0 errors) ====
5+
var m3 = require("m3");
6+
7+
module.exports = {
8+
"a": 42,
9+
"b": "hello, world",
10+
"person": m3.person
11+
};
12+
13+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/importHigher/node_modules/m1/index.js (0 errors) ====
14+
var m2 = require('m2');
15+
16+
/**
17+
* @param {string} p1 The first param
18+
*/
19+
exports.f1 = function(p1) {
20+
return 42;
21+
};
22+
23+
exports.f2 = m2;
24+
25+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/importHigher/node_modules/m2/node_modules/m3/index.js (0 errors) ====
26+
exports.person = {
27+
"name": "John Doe",
28+
"age": 42
29+
}
30+
31+
==== importHigher/root.ts (1 errors) ====
32+
import * as m1 from "m1";
33+
import * as m2 from "m2";
34+
35+
m1.f1("test");
36+
m1.f2.a = 10;
37+
m1.f2.person.age = "10"; // Error: Should be number (if direct import of m2 made the m3 module visible).
38+
~~~~~~~~~~~~~~~~
39+
!!! error TS2322: Type 'string' is not assignable to type 'number'.
40+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"scenario": "Verify that a higher import loads a module that was previously skipped",
3+
"projectRoot": "tests/cases/projects/NodeModulesSearch",
4+
"baselineCheck": true,
5+
"declaration": false,
6+
"moduleResolution": "node",
7+
"project": "importHigher",
8+
"resolvedInputFiles": [
9+
"lib.d.ts",
10+
"importHigher/node_modules/m2/entry.js",
11+
"importHigher/node_modules/m1/index.js",
12+
"importHigher/node_modules/m2/node_modules/m3/index.js",
13+
"importHigher/root.ts"
14+
],
15+
"emittedFiles": [
16+
"importHigher/root.js"
17+
]
18+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"use strict";
2+
var m1 = require("m1");
3+
m1.f1("test");
4+
m1.f2.a = 10;
5+
m1.f2.person.age = "10"; // Error: Should be number (if direct import of m2 made the m3 module visible).
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
importHigher/root.ts(6,1): error TS2322: Type 'string' is not assignable to type 'number'.
2+
3+
4+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/importHigher/node_modules/m2/entry.js (0 errors) ====
5+
var m3 = require("m3");
6+
7+
module.exports = {
8+
"a": 42,
9+
"b": "hello, world",
10+
"person": m3.person
11+
};
12+
13+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/importHigher/node_modules/m1/index.js (0 errors) ====
14+
var m2 = require('m2');
15+
16+
/**
17+
* @param {string} p1 The first param
18+
*/
19+
exports.f1 = function(p1) {
20+
return 42;
21+
};
22+
23+
exports.f2 = m2;
24+
25+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/importHigher/node_modules/m2/node_modules/m3/index.js (0 errors) ====
26+
exports.person = {
27+
"name": "John Doe",
28+
"age": 42
29+
}
30+
31+
==== importHigher/root.ts (1 errors) ====
32+
import * as m1 from "m1";
33+
import * as m2 from "m2";
34+
35+
m1.f1("test");
36+
m1.f2.a = 10;
37+
m1.f2.person.age = "10"; // Error: Should be number (if direct import of m2 made the m3 module visible).
38+
~~~~~~~~~~~~~~~~
39+
!!! error TS2322: Type 'string' is not assignable to type 'number'.
40+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"scenario": "Verify that a higher import loads a module that was previously skipped",
3+
"projectRoot": "tests/cases/projects/NodeModulesSearch",
4+
"baselineCheck": true,
5+
"declaration": false,
6+
"moduleResolution": "node",
7+
"project": "importHigher",
8+
"resolvedInputFiles": [
9+
"lib.d.ts",
10+
"importHigher/node_modules/m2/entry.js",
11+
"importHigher/node_modules/m1/index.js",
12+
"importHigher/node_modules/m2/node_modules/m3/index.js",
13+
"importHigher/root.ts"
14+
],
15+
"emittedFiles": [
16+
"importHigher/root.js"
17+
]
18+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
define(["require", "exports", "m1"], function (require, exports, m1) {
2+
"use strict";
3+
m1.f1("test");
4+
m1.f2.a = "10"; // Error: Should be number
5+
m1.f2.person.age = "10"; // OK if stopped at 2 modules: person will be "any".
6+
});
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
maxDepthExceeded/root.ts(3,1): error TS2322: Type 'string' is not assignable to type 'number'.
2+
3+
4+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/maxDepthExceeded/node_modules/m2/entry.js (0 errors) ====
5+
var m3 = require("m3");
6+
7+
module.exports = {
8+
"a": 42,
9+
"b": "hello, world",
10+
"person": m3.person
11+
};
12+
13+
==== C:/src/TypeScript/tests/cases/projects/NodeModulesSearch/maxDepthExceeded/node_modules/m1/index.js (0 errors) ====
14+
var m2 = require('m2');
15+
16+
/**
17+
* @param {string} p1 The first param
18+
*/
19+
exports.f1 = function(p1) {
20+
return 42;
21+
};
22+
23+
exports.f2 = m2;
24+
25+
==== maxDepthExceeded/root.ts (1 errors) ====
26+
import * as m1 from "m1";
27+
m1.f1("test");
28+
m1.f2.a = "10"; // Error: Should be number
29+
~~~~~~~
30+
!!! error TS2322: Type 'string' is not assignable to type 'number'.
31+
m1.f2.person.age = "10"; // OK if stopped at 2 modules: person will be "any".
32+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"scenario": "Verify that JavaScript modules are not resolved if too many hops",
3+
"projectRoot": "tests/cases/projects/NodeModulesSearch",
4+
"baselineCheck": true,
5+
"declaration": false,
6+
"moduleResolution": "node",
7+
"project": "maxDepthExceeded",
8+
"resolvedInputFiles": [
9+
"lib.d.ts",
10+
"maxDepthExceeded/node_modules/m2/entry.js",
11+
"maxDepthExceeded/node_modules/m1/index.js",
12+
"maxDepthExceeded/root.ts"
13+
],
14+
"emittedFiles": [
15+
"maxDepthExceeded/root.js"
16+
]
17+
}

0 commit comments

Comments
 (0)