diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-04-23 16:21:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-23 17:21:06 +0200 |
commit | 35220f0069931c6c4b9023c2d123f3b37f7e9c56 (patch) | |
tree | d8efdc6a83a99f94dd8989c98ff62f78a0bc319e /tests/specs | |
parent | b0d3b20f2319ad346fe70b1114f492f852689435 (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')
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); |