summaryrefslogtreecommitdiff
path: root/tests/specs
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 /tests/specs
parent3e053f8f06cfd83bd3f162ee68a0eca849e50d2a (diff)
refactor(tests): migrate npm itests to specs (#25764)
Towards https://github.com/denoland/deno/issues/25241
Diffstat (limited to 'tests/specs')
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/__test__.jsonc14
-rw-r--r--tests/specs/npm/local_dir_resolves_symlinks/index.js3
-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.json7
-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.out3
-rw-r--r--tests/specs/npm/node_modules_import/main.ts16
-rw-r--r--tests/specs/npm/node_modules_import/main_check.out16
-rw-r--r--tests/specs/npm/node_modules_import/package.json5
-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
22 files changed, 242 insertions, 0 deletions
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/specs/npm/local_dir_resolves_symlinks/index.js b/tests/specs/npm/local_dir_resolves_symlinks/index.js
new file mode 100644
index 000000000..72d8913f5
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks/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/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/specs/npm/local_dir_resolves_symlinks/package.json b/tests/specs/npm/local_dir_resolves_symlinks/package.json
new file mode 100644
index 000000000..4c974022e
--- /dev/null
+++ b/tests/specs/npm/local_dir_resolves_symlinks/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "foo",
+ "type": "module",
+ "dependencies": {
+ "define-properties": "^1.2.0"
+ }
+}
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/specs/npm/node_modules_import/main.out b/tests/specs/npm/node_modules_import/main.out
new file mode 100644
index 000000000..083edaac2
--- /dev/null
+++ b/tests/specs/npm/node_modules_import/main.out
@@ -0,0 +1,3 @@
+2
+2
+2
diff --git a/tests/specs/npm/node_modules_import/main.ts b/tests/specs/npm/node_modules_import/main.ts
new file mode 100644
index 000000000..848ca0f81
--- /dev/null
+++ b/tests/specs/npm/node_modules_import/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/main_check.out b/tests/specs/npm/node_modules_import/main_check.out
new file mode 100644
index 000000000..7fd7013fc
--- /dev/null
+++ b/tests/specs/npm/node_modules_import/main_check.out
@@ -0,0 +1,16 @@
+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/package.json b/tests/specs/npm/node_modules_import/package.json
new file mode 100644
index 000000000..ed77298e0
--- /dev/null
+++ b/tests/specs/npm/node_modules_import/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "@denotest/esm-basic": "^1"
+ }
+}
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"
+ }
+}