summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatya Rohith <me@satyarohith.com>2024-09-21 02:08:32 +0530
committerGitHub <noreply@github.com>2024-09-20 22:38:32 +0200
commit94bdebe3998d503c625dbf093c40d7cb9d694d7c (patch)
tree4a09558a0ada78df662a9f7a384fb0b7372662e1
parent3e053f8f06cfd83bd3f162ee68a0eca849e50d2a (diff)
refactor(tests): migrate npm itests to specs (#25764)
Towards https://github.com/denoland/deno/issues/25241
-rw-r--r--tests/integration/npm_tests.rs33
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc14
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/index.js (renamed from tests/testdata/npm/local_dir_resolves_symlinks/index.js)0
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/index.out1
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/install.out23
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/package.json (renamed from tests/testdata/npm/local_dir_resolves_symlinks/package.json)0
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks_auto/__test__.jsonc10
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks_auto/deno.json3
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks_auto/index.js3
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks_auto/index.out24
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks_auto/package.json7
-rw-r--r--tests/specs/npm/node_modules_import/__test__.jsonc31
-rw-r--r--tests/specs/npm/node_modules_import/install.out3
-rw-r--r--tests/specs/npm/node_modules_import/main.out (renamed from tests/testdata/npm/node_modules_import/main.out)0
-rw-r--r--tests/specs/npm/node_modules_import/main.ts (renamed from tests/testdata/npm/node_modules_import/main.ts)0
-rw-r--r--tests/specs/npm/node_modules_import/main_check.out (renamed from tests/testdata/npm/node_modules_import/main_check.out)6
-rw-r--r--tests/specs/npm/node_modules_import/package.json (renamed from tests/testdata/npm/node_modules_import/package.json)0
-rw-r--r--tests/specs/npm/node_modules_import_auto/__test__.jsonc23
-rw-r--r--tests/specs/npm/node_modules_import_auto/deno.json3
-rw-r--r--tests/specs/npm/node_modules_import_auto/main.out6
-rw-r--r--tests/specs/npm/node_modules_import_auto/main.ts16
-rw-r--r--tests/specs/npm/node_modules_import_auto/main_check.out20
-rw-r--r--tests/specs/npm/node_modules_import_auto/package.json5
-rw-r--r--tests/testdata/npm/local_dir_resolves_symlinks/index.out2
-rwxr-xr-xtools/lint.js2
25 files changed, 196 insertions, 39 deletions
diff --git a/tests/integration/npm_tests.rs b/tests/integration/npm_tests.rs
index 3aea62fc6..004136ae7 100644
--- a/tests/integration/npm_tests.rs
+++ b/tests/integration/npm_tests.rs
@@ -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(),
diff --git a/tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc b/tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc
new file mode 100644
index 000000000..a846fdcb4
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc
@@ -0,0 +1,14 @@
+{
+ "tempDir": true,
+ "steps": [
+ {
+ "args": "install",
+ "output": "install.out"
+ },
+ {
+ "args": "run -A index.js",
+ "output": "index.out",
+ "exitCode": 0
+ }
+ ]
+}
diff --git a/tests/testdata/npm/local_dir_resolves_symlinks/index.js b/tests/specs/npm/local_dir_resolves_symlinks/index.js
index 72d8913f5..72d8913f5 100644
--- a/tests/testdata/npm/local_dir_resolves_symlinks/index.js
+++ b/tests/specs/npm/local_dir_resolves_symlinks/index.js
diff --git a/tests/specs/npm/local_dir_resolves_symlinks/index.out b/tests/specs/npm/local_dir_resolves_symlinks/index.out
new file mode 100644
index 000000000..7550ee132
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks/index.out
@@ -0,0 +1 @@
+true it works
diff --git a/tests/specs/npm/local_dir_resolves_symlinks/install.out b/tests/specs/npm/local_dir_resolves_symlinks/install.out
new file mode 100644
index 000000000..0c15b2a0e
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks/install.out
@@ -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]
diff --git a/tests/testdata/npm/local_dir_resolves_symlinks/package.json b/tests/specs/npm/local_dir_resolves_symlinks/package.json
index 4c974022e..4c974022e 100644
--- a/tests/testdata/npm/local_dir_resolves_symlinks/package.json
+++ b/tests/specs/npm/local_dir_resolves_symlinks/package.json
diff --git a/tests/specs/npm/local_dir_resolves_symlinks_auto/__test__.jsonc b/tests/specs/npm/local_dir_resolves_symlinks_auto/__test__.jsonc
new file mode 100644
index 000000000..78cd876f2
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks_auto/__test__.jsonc
@@ -0,0 +1,10 @@
+{
+ "tempDir": true,
+ "steps": [
+ {
+ "args": "run -A index.js",
+ "output": "index.out",
+ "exitCode": 0
+ }
+ ]
+}
diff --git a/tests/specs/npm/local_dir_resolves_symlinks_auto/deno.json b/tests/specs/npm/local_dir_resolves_symlinks_auto/deno.json
new file mode 100644
index 000000000..fbd70ec48
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks_auto/deno.json
@@ -0,0 +1,3 @@
+{
+ "nodeModulesDir": "auto"
+}
diff --git a/tests/specs/npm/local_dir_resolves_symlinks_auto/index.js b/tests/specs/npm/local_dir_resolves_symlinks_auto/index.js
new file mode 100644
index 000000000..72d8913f5
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks_auto/index.js
@@ -0,0 +1,3 @@
+import * as d from "define-properties";
+
+console.log(typeof d.default === "function", "it works");
diff --git a/tests/specs/npm/local_dir_resolves_symlinks_auto/index.out b/tests/specs/npm/local_dir_resolves_symlinks_auto/index.out
new file mode 100644
index 000000000..0cb3a1593
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks_auto/index.out
@@ -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
diff --git a/tests/specs/npm/local_dir_resolves_symlinks_auto/package.json b/tests/specs/npm/local_dir_resolves_symlinks_auto/package.json
new file mode 100644
index 000000000..4c974022e
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks_auto/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "foo",
+ "type": "module",
+ "dependencies": {
+ "define-properties": "^1.2.0"
+ }
+}
diff --git a/tests/specs/npm/node_modules_import/__test__.jsonc b/tests/specs/npm/node_modules_import/__test__.jsonc
new file mode 100644
index 000000000..61a1706a8
--- /dev/null
+++ b/tests/specs/npm/node_modules_import/__test__.jsonc
@@ -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
+ }
+ ]
+ }
+ }
+}
diff --git a/tests/specs/npm/node_modules_import/install.out b/tests/specs/npm/node_modules_import/install.out
new file mode 100644
index 000000000..b8114c12a
--- /dev/null
+++ b/tests/specs/npm/node_modules_import/install.out
@@ -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
diff --git a/tests/testdata/npm/node_modules_import/main.out b/tests/specs/npm/node_modules_import/main.out
index 083edaac2..083edaac2 100644
--- a/tests/testdata/npm/node_modules_import/main.out
+++ b/tests/specs/npm/node_modules_import/main.out
diff --git a/tests/testdata/npm/node_modules_import/main.ts b/tests/specs/npm/node_modules_import/main.ts
index 848ca0f81..848ca0f81 100644
--- a/tests/testdata/npm/node_modules_import/main.ts
+++ b/tests/specs/npm/node_modules_import/main.ts
diff --git a/tests/testdata/npm/node_modules_import/main_check.out b/tests/specs/npm/node_modules_import/main_check.out
index cf7cc110d..7fd7013fc 100644
--- a/tests/testdata/npm/node_modules_import/main_check.out
+++ b/tests/specs/npm/node_modules_import/main_check.out
@@ -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.
diff --git a/tests/testdata/npm/node_modules_import/package.json b/tests/specs/npm/node_modules_import/package.json
index ed77298e0..ed77298e0 100644
--- a/tests/testdata/npm/node_modules_import/package.json
+++ b/tests/specs/npm/node_modules_import/package.json
diff --git a/tests/specs/npm/node_modules_import_auto/__test__.jsonc b/tests/specs/npm/node_modules_import_auto/__test__.jsonc
new file mode 100644
index 000000000..4f18ebe60
--- /dev/null
+++ b/tests/specs/npm/node_modules_import_auto/__test__.jsonc
@@ -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
+ }
+ ]
+ }
+ }
+}
diff --git a/tests/specs/npm/node_modules_import_auto/deno.json b/tests/specs/npm/node_modules_import_auto/deno.json
new file mode 100644
index 000000000..fbd70ec48
--- /dev/null
+++ b/tests/specs/npm/node_modules_import_auto/deno.json
@@ -0,0 +1,3 @@
+{
+ "nodeModulesDir": "auto"
+}
diff --git a/tests/specs/npm/node_modules_import_auto/main.out b/tests/specs/npm/node_modules_import_auto/main.out
new file mode 100644
index 000000000..8fda5cda1
--- /dev/null
+++ b/tests/specs/npm/node_modules_import_auto/main.out
@@ -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
diff --git a/tests/specs/npm/node_modules_import_auto/main.ts b/tests/specs/npm/node_modules_import_auto/main.ts
new file mode 100644
index 000000000..848ca0f81
--- /dev/null
+++ b/tests/specs/npm/node_modules_import_auto/main.ts
@@ -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);
diff --git a/tests/specs/npm/node_modules_import_auto/main_check.out b/tests/specs/npm/node_modules_import_auto/main_check.out
new file mode 100644
index 000000000..24249f357
--- /dev/null
+++ b/tests/specs/npm/node_modules_import_auto/main_check.out
@@ -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.
diff --git a/tests/specs/npm/node_modules_import_auto/package.json b/tests/specs/npm/node_modules_import_auto/package.json
new file mode 100644
index 000000000..ed77298e0
--- /dev/null
+++ b/tests/specs/npm/node_modules_import_auto/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "@denotest/esm-basic": "^1"
+ }
+}
diff --git a/tests/testdata/npm/local_dir_resolves_symlinks/index.out b/tests/testdata/npm/local_dir_resolves_symlinks/index.out
deleted file mode 100644
index 25d44c6b8..000000000
--- a/tests/testdata/npm/local_dir_resolves_symlinks/index.out
+++ /dev/null
@@ -1,2 +0,0 @@
-Download [WILDCARD]
-true it works
diff --git a/tools/lint.js b/tools/lint.js
index de0db015f..496e83fc4 100755
--- a/tools/lint.js
+++ b/tools/lint.js
@@ -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,