mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 20:38:55 +00: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
@ -145,17 +145,6 @@ itest!(mixed_case_package_name_local_dir {
|
||||
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
|
||||
// at the moment
|
||||
// itest!(dynamic_import {
|
||||
@ -1561,28 +1550,6 @@ itest!(create_require {
|
||||
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 {
|
||||
args: "cache npm:@denotest/non-existent-dep",
|
||||
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'.
|
||||
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'.
|
||||
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'.
|
||||
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.
|
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,
|
||||
"node_compat_tests.rs": 0,
|
||||
"node_unit_tests.rs": 2,
|
||||
"npm_tests.rs": 92,
|
||||
"npm_tests.rs": 89,
|
||||
"pm_tests.rs": 0,
|
||||
"publish_tests.rs": 0,
|
||||
"repl_tests.rs": 0,
|
||||
|
Loading…
Reference in New Issue
Block a user