mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
refactor(tests): migrate npm itests to specs (#25764)
Towards https://github.com/denoland/deno/issues/25241
This commit is contained in:
parent
3e053f8f06
commit
94bdebe399
25 changed files with 196 additions and 39 deletions
|
@ -145,17 +145,6 @@ itest!(mixed_case_package_name_local_dir {
|
||||||
temp_cwd: true,
|
temp_cwd: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO(2.0): this should be rewritten to a spec test and first run `deno install`
|
|
||||||
// itest!(local_dir_resolves_symlinks {
|
|
||||||
// args: "run -A index.js",
|
|
||||||
// output: "npm/local_dir_resolves_symlinks/index.out",
|
|
||||||
// exit_code: 0,
|
|
||||||
// envs: env_vars_for_npm_tests(),
|
|
||||||
// cwd: Some("npm/local_dir_resolves_symlinks/"),
|
|
||||||
// copy_temp_dir: Some("npm/local_dir_resolves_symlinks/"),
|
|
||||||
// http_server: true,
|
|
||||||
// });
|
|
||||||
|
|
||||||
// FIXME(bartlomieju): npm: specifiers are not handled in dynamic imports
|
// FIXME(bartlomieju): npm: specifiers are not handled in dynamic imports
|
||||||
// at the moment
|
// at the moment
|
||||||
// itest!(dynamic_import {
|
// itest!(dynamic_import {
|
||||||
|
@ -1561,28 +1550,6 @@ itest!(create_require {
|
||||||
http_server: true,
|
http_server: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO(2.0): this should be rewritten to a spec test and first run `deno install`
|
|
||||||
// itest!(node_modules_import_run {
|
|
||||||
// args: "run --quiet main.ts",
|
|
||||||
// output: "npm/node_modules_import/main.out",
|
|
||||||
// http_server: true,
|
|
||||||
// copy_temp_dir: Some("npm/node_modules_import/"),
|
|
||||||
// cwd: Some("npm/node_modules_import/"),
|
|
||||||
// envs: env_vars_for_npm_tests(),
|
|
||||||
// exit_code: 0,
|
|
||||||
// });
|
|
||||||
|
|
||||||
// TODO(2.0): this should be rewritten to a spec test and first run `deno install`
|
|
||||||
// itest!(node_modules_import_check {
|
|
||||||
// args: "check --quiet main.ts",
|
|
||||||
// output: "npm/node_modules_import/main_check.out",
|
|
||||||
// envs: env_vars_for_npm_tests(),
|
|
||||||
// http_server: true,
|
|
||||||
// cwd: Some("npm/node_modules_import/"),
|
|
||||||
// copy_temp_dir: Some("npm/node_modules_import/"),
|
|
||||||
// exit_code: 1,
|
|
||||||
// });
|
|
||||||
|
|
||||||
itest!(non_existent_dep {
|
itest!(non_existent_dep {
|
||||||
args: "cache npm:@denotest/non-existent-dep",
|
args: "cache npm:@denotest/non-existent-dep",
|
||||||
envs: env_vars_for_npm_tests(),
|
envs: env_vars_for_npm_tests(),
|
||||||
|
|
14
tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc
Normal file
14
tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"tempDir": true,
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"args": "install",
|
||||||
|
"output": "install.out"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"args": "run -A index.js",
|
||||||
|
"output": "index.out",
|
||||||
|
"exitCode": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
1
tests/specs/npm/local_dir_resolves_symlinks/index.out
Normal file
1
tests/specs/npm/local_dir_resolves_symlinks/index.out
Normal file
|
@ -0,0 +1 @@
|
||||||
|
true it works
|
23
tests/specs/npm/local_dir_resolves_symlinks/install.out
Normal file
23
tests/specs/npm/local_dir_resolves_symlinks/install.out
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
[UNORDERED_START]
|
||||||
|
Download http://localhost:4260/define-properties
|
||||||
|
Download http://localhost:4260/has-property-descriptors
|
||||||
|
Download http://localhost:4260/object-keys
|
||||||
|
Download http://localhost:4260/get-intrinsic
|
||||||
|
Download http://localhost:4260/function-bind
|
||||||
|
Download http://localhost:4260/has
|
||||||
|
Download http://localhost:4260/has-symbols
|
||||||
|
Download http://localhost:4260/define-properties/define-properties-1.2.0.tgz
|
||||||
|
Download http://localhost:4260/has-property-descriptors/has-property-descriptors-1.0.0.tgz
|
||||||
|
Download http://localhost:4260/object-keys/object-keys-1.1.1.tgz
|
||||||
|
Download http://localhost:4260/get-intrinsic/get-intrinsic-1.2.0.tgz
|
||||||
|
Download http://localhost:4260/has-symbols/has-symbols-1.0.3.tgz
|
||||||
|
Download http://localhost:4260/has/has-1.0.3.tgz
|
||||||
|
Download http://localhost:4260/function-bind/function-bind-1.1.1.tgz
|
||||||
|
Initialize has@1.0.3
|
||||||
|
Initialize define-properties@1.2.0
|
||||||
|
Initialize has-property-descriptors@1.0.0
|
||||||
|
Initialize object-keys@1.1.1
|
||||||
|
Initialize get-intrinsic@1.2.0
|
||||||
|
Initialize function-bind@1.1.1
|
||||||
|
Initialize has-symbols@1.0.3
|
||||||
|
[UNORDERED_END]
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"tempDir": true,
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"args": "run -A index.js",
|
||||||
|
"output": "index.out",
|
||||||
|
"exitCode": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"nodeModulesDir": "auto"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
import * as d from "define-properties";
|
||||||
|
|
||||||
|
console.log(typeof d.default === "function", "it works");
|
24
tests/specs/npm/local_dir_resolves_symlinks_auto/index.out
Normal file
24
tests/specs/npm/local_dir_resolves_symlinks_auto/index.out
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[UNORDERED_START]
|
||||||
|
Download http://localhost:4260/define-properties
|
||||||
|
Download http://localhost:4260/has-property-descriptors
|
||||||
|
Download http://localhost:4260/object-keys
|
||||||
|
Download http://localhost:4260/get-intrinsic
|
||||||
|
Download http://localhost:4260/function-bind
|
||||||
|
Download http://localhost:4260/has
|
||||||
|
Download http://localhost:4260/has-symbols
|
||||||
|
Download http://localhost:4260/define-properties/define-properties-1.2.0.tgz
|
||||||
|
Download http://localhost:4260/has-property-descriptors/has-property-descriptors-1.0.0.tgz
|
||||||
|
Download http://localhost:4260/object-keys/object-keys-1.1.1.tgz
|
||||||
|
Download http://localhost:4260/get-intrinsic/get-intrinsic-1.2.0.tgz
|
||||||
|
Download http://localhost:4260/has-symbols/has-symbols-1.0.3.tgz
|
||||||
|
Download http://localhost:4260/has/has-1.0.3.tgz
|
||||||
|
Download http://localhost:4260/function-bind/function-bind-1.1.1.tgz
|
||||||
|
Initialize has@1.0.3
|
||||||
|
Initialize define-properties@1.2.0
|
||||||
|
Initialize has-property-descriptors@1.0.0
|
||||||
|
Initialize object-keys@1.1.1
|
||||||
|
Initialize get-intrinsic@1.2.0
|
||||||
|
Initialize function-bind@1.1.1
|
||||||
|
Initialize has-symbols@1.0.3
|
||||||
|
[UNORDERED_END]
|
||||||
|
true it works
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "foo",
|
||||||
|
"type": "module",
|
||||||
|
"dependencies": {
|
||||||
|
"define-properties": "^1.2.0"
|
||||||
|
}
|
||||||
|
}
|
31
tests/specs/npm/node_modules_import/__test__.jsonc
Normal file
31
tests/specs/npm/node_modules_import/__test__.jsonc
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"tempDir": true,
|
||||||
|
"tests": {
|
||||||
|
"node_modules_import_run": {
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"args": "install",
|
||||||
|
"output": "install.out"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"args": "run --quiet main.ts",
|
||||||
|
"output": "main.out",
|
||||||
|
"exitCode": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules_import_check": {
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"args": "install",
|
||||||
|
"output": "install.out"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"args": "check --quiet main.ts",
|
||||||
|
"output": "main_check.out",
|
||||||
|
"exitCode": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
tests/specs/npm/node_modules_import/install.out
Normal file
3
tests/specs/npm/node_modules_import/install.out
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Download http://localhost:4260/@denotest/esm-basic
|
||||||
|
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
|
||||||
|
Initialize @denotest/esm-basic@1.0.0
|
|
@ -1,16 +1,16 @@
|
||||||
error: TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
error: TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
||||||
const value1: string = myImport1.getValue();
|
const value1: string = myImport1.getValue();
|
||||||
~~~~~~
|
~~~~~~
|
||||||
at file:///[WILDCARD]/npm/node_modules_import/main.ts:9:7
|
at file:///[WILDCARD]/main.ts:9:7
|
||||||
|
|
||||||
TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
||||||
const value2: string = myImport2.getValue();
|
const value2: string = myImport2.getValue();
|
||||||
~~~~~~
|
~~~~~~
|
||||||
at file:///[WILDCARD]/npm/node_modules_import/main.ts:10:7
|
at file:///[WILDCARD]/main.ts:10:7
|
||||||
|
|
||||||
TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
||||||
const value3: string = myImport3.getValue();
|
const value3: string = myImport3.getValue();
|
||||||
~~~~~~
|
~~~~~~
|
||||||
at file:///[WILDCARD]/npm/node_modules_import/main.ts:11:7
|
at file:///[WILDCARD]/main.ts:11:7
|
||||||
|
|
||||||
Found 3 errors.
|
Found 3 errors.
|
23
tests/specs/npm/node_modules_import_auto/__test__.jsonc
Normal file
23
tests/specs/npm/node_modules_import_auto/__test__.jsonc
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"tempDir": true,
|
||||||
|
"tests": {
|
||||||
|
"node_modules_import_run": {
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"args": "run main.ts",
|
||||||
|
"output": "main.out",
|
||||||
|
"exitCode": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules_import_check": {
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"args": "check main.ts",
|
||||||
|
"output": "main_check.out",
|
||||||
|
"exitCode": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
tests/specs/npm/node_modules_import_auto/deno.json
Normal file
3
tests/specs/npm/node_modules_import_auto/deno.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"nodeModulesDir": "auto"
|
||||||
|
}
|
6
tests/specs/npm/node_modules_import_auto/main.out
Normal file
6
tests/specs/npm/node_modules_import_auto/main.out
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Download http://localhost:4260/@denotest/esm-basic
|
||||||
|
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
|
||||||
|
Initialize @denotest/esm-basic@1.0.0
|
||||||
|
2
|
||||||
|
2
|
||||||
|
2
|
16
tests/specs/npm/node_modules_import_auto/main.ts
Normal file
16
tests/specs/npm/node_modules_import_auto/main.ts
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
import * as myImport1 from "@denotest/esm-basic";
|
||||||
|
import * as myImport2 from "./node_modules/@denotest/esm-basic/main.mjs";
|
||||||
|
import * as myImport3 from "@denotest/esm-basic/main.mjs";
|
||||||
|
|
||||||
|
myImport1.setValue(5);
|
||||||
|
myImport2.setValue(2);
|
||||||
|
|
||||||
|
// these should all give type errors
|
||||||
|
const value1: string = myImport1.getValue();
|
||||||
|
const value2: string = myImport2.getValue();
|
||||||
|
const value3: string = myImport3.getValue();
|
||||||
|
|
||||||
|
// these should all be equal because it should be mutating the same module
|
||||||
|
console.log(value1);
|
||||||
|
console.log(value2);
|
||||||
|
console.log(value3);
|
20
tests/specs/npm/node_modules_import_auto/main_check.out
Normal file
20
tests/specs/npm/node_modules_import_auto/main_check.out
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Download http://localhost:4260/@denotest/esm-basic
|
||||||
|
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
|
||||||
|
Initialize @denotest/esm-basic@1.0.0
|
||||||
|
Check file:///[WILDCARD]/main.ts
|
||||||
|
error: TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
||||||
|
const value1: string = myImport1.getValue();
|
||||||
|
~~~~~~
|
||||||
|
at file:///[WILDCARD]/main.ts:9:7
|
||||||
|
|
||||||
|
TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
||||||
|
const value2: string = myImport2.getValue();
|
||||||
|
~~~~~~
|
||||||
|
at file:///[WILDCARD]/main.ts:10:7
|
||||||
|
|
||||||
|
TS2322 [ERROR]: Type 'number' is not assignable to type 'string'.
|
||||||
|
const value3: string = myImport3.getValue();
|
||||||
|
~~~~~~
|
||||||
|
at file:///[WILDCARD]/main.ts:11:7
|
||||||
|
|
||||||
|
Found 3 errors.
|
5
tests/specs/npm/node_modules_import_auto/package.json
Normal file
5
tests/specs/npm/node_modules_import_auto/package.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"@denotest/esm-basic": "^1"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,2 +0,0 @@
|
||||||
Download [WILDCARD]
|
|
||||||
true it works
|
|
|
@ -214,7 +214,7 @@ async function ensureNoNewITests() {
|
||||||
"lsp_tests.rs": 0,
|
"lsp_tests.rs": 0,
|
||||||
"node_compat_tests.rs": 0,
|
"node_compat_tests.rs": 0,
|
||||||
"node_unit_tests.rs": 2,
|
"node_unit_tests.rs": 2,
|
||||||
"npm_tests.rs": 92,
|
"npm_tests.rs": 89,
|
||||||
"pm_tests.rs": 0,
|
"pm_tests.rs": 0,
|
||||||
"publish_tests.rs": 0,
|
"publish_tests.rs": 0,
|
||||||
"repl_tests.rs": 0,
|
"repl_tests.rs": 0,
|
||||||
|
|
Loading…
Reference in a new issue