summaryrefslogtreecommitdiff
path: root/tests/specs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-04-23 16:21:06 +0100
committerGitHub <noreply@github.com>2024-04-23 17:21:06 +0200
commit35220f0069931c6c4b9023c2d123f3b37f7e9c56 (patch)
treed8efdc6a83a99f94dd8989c98ff62f78a0bc319e /tests/specs
parentb0d3b20f2319ad346fe70b1114f492f852689435 (diff)
fix(workspace): provide workspace members as 'imports' in import map (#23492)
This commit changes the workspace support to provide all workspace members to be available as imports based on their names and versions. Closes https://github.com/denoland/deno/issues/23343
Diffstat (limited to 'tests/specs')
-rw-r--r--tests/specs/run/workspaces/basic/__test__.jsonc5
-rw-r--r--tests/specs/run/workspaces/basic/bar/deno.json8
-rw-r--r--tests/specs/run/workspaces/basic/bar/fizz/buzz.ts1
-rw-r--r--tests/specs/run/workspaces/basic/bar/mod.ts5
-rw-r--r--tests/specs/run/workspaces/basic/bar/some_mod/hello.ts1
-rw-r--r--tests/specs/run/workspaces/basic/deno.json9
-rw-r--r--tests/specs/run/workspaces/basic/foo/bar/hello.ts1
-rw-r--r--tests/specs/run/workspaces/basic/foo/deno.json8
-rw-r--r--tests/specs/run/workspaces/basic/foo/fizz/buzz.ts1
-rw-r--r--tests/specs/run/workspaces/basic/foo/mod.ts5
-rw-r--r--tests/specs/run/workspaces/basic/main.out26
-rw-r--r--tests/specs/run/workspaces/basic/main.ts5
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/__test__.jsonc6
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/deno.json9
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/foo/bar/hello.ts1
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/foo/deno.json8
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/foo/fizz/buzz.ts1
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/foo/mod.ts5
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/main.out1
-rw-r--r--tests/specs/run/workspaces/member_outside_root_dir/main.ts4
-rw-r--r--tests/specs/run/workspaces/members_are_imports/__test__.jsonc5
-rw-r--r--tests/specs/run/workspaces/members_are_imports/bar/deno.jsonc7
-rw-r--r--tests/specs/run/workspaces/members_are_imports/bar/mod.ts1
-rw-r--r--tests/specs/run/workspaces/members_are_imports/deno.json9
-rw-r--r--tests/specs/run/workspaces/members_are_imports/foo/deno.jsonc7
-rw-r--r--tests/specs/run/workspaces/members_are_imports/foo/mod.ts1
-rw-r--r--tests/specs/run/workspaces/members_are_imports/main.out1
-rw-r--r--tests/specs/run/workspaces/members_are_imports/main.ts4
-rw-r--r--tests/specs/run/workspaces/nested_member/__test__.jsonc6
-rw-r--r--tests/specs/run/workspaces/nested_member/bar/deno.json8
-rw-r--r--tests/specs/run/workspaces/nested_member/bar/fizz/buzz.ts1
-rw-r--r--tests/specs/run/workspaces/nested_member/bar/mod.ts5
-rw-r--r--tests/specs/run/workspaces/nested_member/bar/some_mod/hello.ts1
-rw-r--r--tests/specs/run/workspaces/nested_member/deno.json6
-rw-r--r--tests/specs/run/workspaces/nested_member/foo/bar/deno.json7
-rw-r--r--tests/specs/run/workspaces/nested_member/foo/bar/hello.ts3
-rw-r--r--tests/specs/run/workspaces/nested_member/foo/deno.json7
-rw-r--r--tests/specs/run/workspaces/nested_member/foo/fizz/buzz.ts1
-rw-r--r--tests/specs/run/workspaces/nested_member/foo/mod.ts3
-rw-r--r--tests/specs/run/workspaces/nested_member/main.out1
-rw-r--r--tests/specs/run/workspaces/nested_member/main.ts4
41 files changed, 198 insertions, 0 deletions
diff --git a/tests/specs/run/workspaces/basic/__test__.jsonc b/tests/specs/run/workspaces/basic/__test__.jsonc
new file mode 100644
index 000000000..ea467e51b
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/__test__.jsonc
@@ -0,0 +1,5 @@
+{
+ "args": "run -L debug -A main.ts",
+ "output": "main.out",
+ "tempDir": true
+}
diff --git a/tests/specs/run/workspaces/basic/bar/deno.json b/tests/specs/run/workspaces/basic/bar/deno.json
new file mode 100644
index 000000000..ef3bfc37a
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/bar/deno.json
@@ -0,0 +1,8 @@
+{
+ "name": "asdfasdfasdf",
+ "version": "0.0.0",
+ "imports": {
+ "@/": "./",
+ "secret_mod/": "./some_mod/"
+ }
+}
diff --git a/tests/specs/run/workspaces/basic/bar/fizz/buzz.ts b/tests/specs/run/workspaces/basic/bar/fizz/buzz.ts
new file mode 100644
index 000000000..f88d62fcc
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/bar/fizz/buzz.ts
@@ -0,0 +1 @@
+export const buzz = "buzz from bar";
diff --git a/tests/specs/run/workspaces/basic/bar/mod.ts b/tests/specs/run/workspaces/basic/bar/mod.ts
new file mode 100644
index 000000000..6f898e389
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/bar/mod.ts
@@ -0,0 +1,5 @@
+import { hello } from "secret_mod/hello.ts";
+import { buzz } from "@/fizz/buzz.ts";
+
+console.log(hello);
+console.log(buzz);
diff --git a/tests/specs/run/workspaces/basic/bar/some_mod/hello.ts b/tests/specs/run/workspaces/basic/bar/some_mod/hello.ts
new file mode 100644
index 000000000..1013de8d2
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/bar/some_mod/hello.ts
@@ -0,0 +1 @@
+export const hello = "hello from bar";
diff --git a/tests/specs/run/workspaces/basic/deno.json b/tests/specs/run/workspaces/basic/deno.json
new file mode 100644
index 000000000..b971c4f3d
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/deno.json
@@ -0,0 +1,9 @@
+{
+ "workspaces": [
+ "foo",
+ "bar"
+ ],
+ "imports": {
+ "chalk": "npm:chalk"
+ }
+}
diff --git a/tests/specs/run/workspaces/basic/foo/bar/hello.ts b/tests/specs/run/workspaces/basic/foo/bar/hello.ts
new file mode 100644
index 000000000..c8a7e57c4
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/foo/bar/hello.ts
@@ -0,0 +1 @@
+export const hello = "hello from foo";
diff --git a/tests/specs/run/workspaces/basic/foo/deno.json b/tests/specs/run/workspaces/basic/foo/deno.json
new file mode 100644
index 000000000..46d84f06f
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/foo/deno.json
@@ -0,0 +1,8 @@
+{
+ "name": "qwerqwer",
+ "version": "0.0.0",
+ "imports": {
+ "~/": "./",
+ "foo/": "./bar/"
+ }
+}
diff --git a/tests/specs/run/workspaces/basic/foo/fizz/buzz.ts b/tests/specs/run/workspaces/basic/foo/fizz/buzz.ts
new file mode 100644
index 000000000..4e03777d1
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/foo/fizz/buzz.ts
@@ -0,0 +1 @@
+export const buzz = "buzz from foo";
diff --git a/tests/specs/run/workspaces/basic/foo/mod.ts b/tests/specs/run/workspaces/basic/foo/mod.ts
new file mode 100644
index 000000000..d7b16dcc0
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/foo/mod.ts
@@ -0,0 +1,5 @@
+import { hello } from "foo/hello.ts";
+import { buzz } from "~/fizz/buzz.ts";
+
+console.log(hello);
+console.log(buzz);
diff --git a/tests/specs/run/workspaces/basic/main.out b/tests/specs/run/workspaces/basic/main.out
new file mode 100644
index 000000000..57d8c9f1e
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/main.out
@@ -0,0 +1,26 @@
+[WILDCARD]Workspace config generated this import map {
+ "imports": {
+ "chalk": "npm:chalk",
+ "chalk/": "npm:/chalk/",
+ "qwerqwer": "jsr:qwerqwer@^0.0.0",
+ "qwerqwer/": "jsr:/qwerqwer@^0.0.0/",
+ "asdfasdfasdf": "jsr:asdfasdfasdf@^0.0.0",
+ "asdfasdfasdf/": "jsr:/asdfasdfasdf@^0.0.0/"
+ },
+ "scopes": {
+ "./foo/": {
+ "~/": "./foo/",
+ "foo/": "./foo/bar/"
+ },
+ "./bar/": {
+ "@/": "./bar/",
+ "secret_mod/": "./bar/some_mod/"
+ }
+ }
+}
+[WILDCARD]
+hello from foo
+buzz from foo
+hello from bar
+buzz from bar
+[Function: chalk][WILDCARD] \ No newline at end of file
diff --git a/tests/specs/run/workspaces/basic/main.ts b/tests/specs/run/workspaces/basic/main.ts
new file mode 100644
index 000000000..380c97619
--- /dev/null
+++ b/tests/specs/run/workspaces/basic/main.ts
@@ -0,0 +1,5 @@
+import chalk from "chalk";
+import "./foo/mod.ts";
+import "./bar/mod.ts";
+
+console.log(chalk);
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/__test__.jsonc b/tests/specs/run/workspaces/member_outside_root_dir/__test__.jsonc
new file mode 100644
index 000000000..a7669c1ec
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/__test__.jsonc
@@ -0,0 +1,6 @@
+{
+ "args": "run -A main.ts",
+ "output": "main.out",
+ "tempDir": true,
+ "exitCode": 1
+}
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/deno.json b/tests/specs/run/workspaces/member_outside_root_dir/deno.json
new file mode 100644
index 000000000..25feefad8
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/deno.json
@@ -0,0 +1,9 @@
+{
+ "workspaces": [
+ "foo",
+ "../other_folder"
+ ],
+ "imports": {
+ "chalk": "npm:chalk"
+ }
+}
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/foo/bar/hello.ts b/tests/specs/run/workspaces/member_outside_root_dir/foo/bar/hello.ts
new file mode 100644
index 000000000..c8a7e57c4
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/foo/bar/hello.ts
@@ -0,0 +1 @@
+export const hello = "hello from foo";
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/foo/deno.json b/tests/specs/run/workspaces/member_outside_root_dir/foo/deno.json
new file mode 100644
index 000000000..46d84f06f
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/foo/deno.json
@@ -0,0 +1,8 @@
+{
+ "name": "qwerqwer",
+ "version": "0.0.0",
+ "imports": {
+ "~/": "./",
+ "foo/": "./bar/"
+ }
+}
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/foo/fizz/buzz.ts b/tests/specs/run/workspaces/member_outside_root_dir/foo/fizz/buzz.ts
new file mode 100644
index 000000000..4e03777d1
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/foo/fizz/buzz.ts
@@ -0,0 +1 @@
+export const buzz = "buzz from foo";
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/foo/mod.ts b/tests/specs/run/workspaces/member_outside_root_dir/foo/mod.ts
new file mode 100644
index 000000000..d7b16dcc0
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/foo/mod.ts
@@ -0,0 +1,5 @@
+import { hello } from "foo/hello.ts";
+import { buzz } from "~/fizz/buzz.ts";
+
+console.log(hello);
+console.log(buzz);
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/main.out b/tests/specs/run/workspaces/member_outside_root_dir/main.out
new file mode 100644
index 000000000..205d95aea
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/main.out
@@ -0,0 +1 @@
+error: Workspace member '../other_folder' is outside root configuration directory[WILDCARD] \ No newline at end of file
diff --git a/tests/specs/run/workspaces/member_outside_root_dir/main.ts b/tests/specs/run/workspaces/member_outside_root_dir/main.ts
new file mode 100644
index 000000000..182fd8517
--- /dev/null
+++ b/tests/specs/run/workspaces/member_outside_root_dir/main.ts
@@ -0,0 +1,4 @@
+import chalk from "chalk";
+import "./foo/mod.ts";
+
+console.log(chalk);
diff --git a/tests/specs/run/workspaces/members_are_imports/__test__.jsonc b/tests/specs/run/workspaces/members_are_imports/__test__.jsonc
new file mode 100644
index 000000000..f9b807142
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/__test__.jsonc
@@ -0,0 +1,5 @@
+{
+ "args": "run -A main.ts",
+ "output": "main.out",
+ "tempDir": true
+}
diff --git a/tests/specs/run/workspaces/members_are_imports/bar/deno.jsonc b/tests/specs/run/workspaces/members_are_imports/bar/deno.jsonc
new file mode 100644
index 000000000..a6431c8d1
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/bar/deno.jsonc
@@ -0,0 +1,7 @@
+{
+ "name": "@deno-test/bar",
+ "version": "0.0.1",
+ "exports": {
+ ".": "./mod.ts"
+ }
+}
diff --git a/tests/specs/run/workspaces/members_are_imports/bar/mod.ts b/tests/specs/run/workspaces/members_are_imports/bar/mod.ts
new file mode 100644
index 000000000..46d3ca8c6
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/bar/mod.ts
@@ -0,0 +1 @@
+export const value = 42;
diff --git a/tests/specs/run/workspaces/members_are_imports/deno.json b/tests/specs/run/workspaces/members_are_imports/deno.json
new file mode 100644
index 000000000..56105365a
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/deno.json
@@ -0,0 +1,9 @@
+{
+ "workspaces": [
+ "foo",
+ "bar"
+ ],
+ "tasks": {
+ "dev": "deno run --watch main.ts"
+ }
+}
diff --git a/tests/specs/run/workspaces/members_are_imports/foo/deno.jsonc b/tests/specs/run/workspaces/members_are_imports/foo/deno.jsonc
new file mode 100644
index 000000000..355350012
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/foo/deno.jsonc
@@ -0,0 +1,7 @@
+{
+ "name": "@deno-test/foo",
+ "version": "0.0.1",
+ "exports": {
+ ".": "./mod.ts"
+ }
+}
diff --git a/tests/specs/run/workspaces/members_are_imports/foo/mod.ts b/tests/specs/run/workspaces/members_are_imports/foo/mod.ts
new file mode 100644
index 000000000..46d3ca8c6
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/foo/mod.ts
@@ -0,0 +1 @@
+export const value = 42;
diff --git a/tests/specs/run/workspaces/members_are_imports/main.out b/tests/specs/run/workspaces/members_are_imports/main.out
new file mode 100644
index 000000000..af23dac2e
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/main.out
@@ -0,0 +1 @@
+[Module: null prototype] { value: 42 } [Module: null prototype] { value: 42 }
diff --git a/tests/specs/run/workspaces/members_are_imports/main.ts b/tests/specs/run/workspaces/members_are_imports/main.ts
new file mode 100644
index 000000000..d2c2f2308
--- /dev/null
+++ b/tests/specs/run/workspaces/members_are_imports/main.ts
@@ -0,0 +1,4 @@
+import * as foo from "@deno-test/foo";
+import * as bar from "@deno-test/bar";
+
+console.log(foo, bar);
diff --git a/tests/specs/run/workspaces/nested_member/__test__.jsonc b/tests/specs/run/workspaces/nested_member/__test__.jsonc
new file mode 100644
index 000000000..a7669c1ec
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/__test__.jsonc
@@ -0,0 +1,6 @@
+{
+ "args": "run -A main.ts",
+ "output": "main.out",
+ "tempDir": true,
+ "exitCode": 1
+}
diff --git a/tests/specs/run/workspaces/nested_member/bar/deno.json b/tests/specs/run/workspaces/nested_member/bar/deno.json
new file mode 100644
index 000000000..ef3bfc37a
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/bar/deno.json
@@ -0,0 +1,8 @@
+{
+ "name": "asdfasdfasdf",
+ "version": "0.0.0",
+ "imports": {
+ "@/": "./",
+ "secret_mod/": "./some_mod/"
+ }
+}
diff --git a/tests/specs/run/workspaces/nested_member/bar/fizz/buzz.ts b/tests/specs/run/workspaces/nested_member/bar/fizz/buzz.ts
new file mode 100644
index 000000000..f88d62fcc
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/bar/fizz/buzz.ts
@@ -0,0 +1 @@
+export const buzz = "buzz from bar";
diff --git a/tests/specs/run/workspaces/nested_member/bar/mod.ts b/tests/specs/run/workspaces/nested_member/bar/mod.ts
new file mode 100644
index 000000000..6f898e389
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/bar/mod.ts
@@ -0,0 +1,5 @@
+import { hello } from "secret_mod/hello.ts";
+import { buzz } from "@/fizz/buzz.ts";
+
+console.log(hello);
+console.log(buzz);
diff --git a/tests/specs/run/workspaces/nested_member/bar/some_mod/hello.ts b/tests/specs/run/workspaces/nested_member/bar/some_mod/hello.ts
new file mode 100644
index 000000000..1013de8d2
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/bar/some_mod/hello.ts
@@ -0,0 +1 @@
+export const hello = "hello from bar";
diff --git a/tests/specs/run/workspaces/nested_member/deno.json b/tests/specs/run/workspaces/nested_member/deno.json
new file mode 100644
index 000000000..6d9c09d4d
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/deno.json
@@ -0,0 +1,6 @@
+{
+ "workspaces": [
+ "foo",
+ "foo/bar"
+ ]
+}
diff --git a/tests/specs/run/workspaces/nested_member/foo/bar/deno.json b/tests/specs/run/workspaces/nested_member/foo/bar/deno.json
new file mode 100644
index 000000000..d40328b36
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/foo/bar/deno.json
@@ -0,0 +1,7 @@
+{
+ "name": "bar",
+ "version": "0.0.0",
+ "imports": {
+ "chalk": "npm:chalk"
+ }
+}
diff --git a/tests/specs/run/workspaces/nested_member/foo/bar/hello.ts b/tests/specs/run/workspaces/nested_member/foo/bar/hello.ts
new file mode 100644
index 000000000..9c1023153
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/foo/bar/hello.ts
@@ -0,0 +1,3 @@
+import chalk from "chalk";
+
+export default chalk;
diff --git a/tests/specs/run/workspaces/nested_member/foo/deno.json b/tests/specs/run/workspaces/nested_member/foo/deno.json
new file mode 100644
index 000000000..68e053b02
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/foo/deno.json
@@ -0,0 +1,7 @@
+{
+ "name": "qwerqwer",
+ "version": "0.0.0",
+ "imports": {
+ "~/": "./"
+ }
+}
diff --git a/tests/specs/run/workspaces/nested_member/foo/fizz/buzz.ts b/tests/specs/run/workspaces/nested_member/foo/fizz/buzz.ts
new file mode 100644
index 000000000..4e03777d1
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/foo/fizz/buzz.ts
@@ -0,0 +1 @@
+export const buzz = "buzz from foo";
diff --git a/tests/specs/run/workspaces/nested_member/foo/mod.ts b/tests/specs/run/workspaces/nested_member/foo/mod.ts
new file mode 100644
index 000000000..b9d4d3c04
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/foo/mod.ts
@@ -0,0 +1,3 @@
+import { buzz } from "~/fizz/buzz.ts";
+
+console.log(buzz);
diff --git a/tests/specs/run/workspaces/nested_member/main.out b/tests/specs/run/workspaces/nested_member/main.out
new file mode 100644
index 000000000..98598a306
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/main.out
@@ -0,0 +1 @@
+error: Workspace member 'foo/bar' is nested within other workspace member 'foo'
diff --git a/tests/specs/run/workspaces/nested_member/main.ts b/tests/specs/run/workspaces/nested_member/main.ts
new file mode 100644
index 000000000..2bf53f7c2
--- /dev/null
+++ b/tests/specs/run/workspaces/nested_member/main.ts
@@ -0,0 +1,4 @@
+import "./foo/mod.ts";
+import chalk from "./foo/bar/hello.ts";
+
+console.log(chalk);