diff options
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/import_blob_url.ts | 13 | ||||
-rw-r--r-- | cli/tests/import_blob_url.ts.out | 3 | ||||
-rw-r--r-- | cli/tests/import_blob_url_error_stack.ts | 13 | ||||
-rw-r--r-- | cli/tests/import_blob_url_error_stack.ts.out | 6 | ||||
-rw-r--r-- | cli/tests/import_blob_url_import_relative.ts | 8 | ||||
-rw-r--r-- | cli/tests/import_blob_url_import_relative.ts.out | 4 | ||||
-rw-r--r-- | cli/tests/import_blob_url_imports.ts | 11 | ||||
-rw-r--r-- | cli/tests/import_blob_url_imports.ts.out | 1 | ||||
-rw-r--r-- | cli/tests/import_blob_url_jsx.ts | 16 | ||||
-rw-r--r-- | cli/tests/import_blob_url_jsx.ts.out | 1 | ||||
-rw-r--r-- | cli/tests/integration_tests.rs | 28 | ||||
-rw-r--r-- | cli/tests/unsupported_dynamic_import_scheme.out | 1 |
12 files changed, 105 insertions, 0 deletions
diff --git a/cli/tests/import_blob_url.ts b/cli/tests/import_blob_url.ts new file mode 100644 index 000000000..86bb634e1 --- /dev/null +++ b/cli/tests/import_blob_url.ts @@ -0,0 +1,13 @@ +const blob = new Blob( + ['export const a = "a";\n\nexport enum A {\n A,\n B,\n C,\n}\n'], + { + type: "application/typescript", + }, +); +const url = URL.createObjectURL(blob); + +const a = await import(url); + +console.log(a.a); +console.log(a.A); +console.log(a.A.A); diff --git a/cli/tests/import_blob_url.ts.out b/cli/tests/import_blob_url.ts.out new file mode 100644 index 000000000..bfa0b9d94 --- /dev/null +++ b/cli/tests/import_blob_url.ts.out @@ -0,0 +1,3 @@ +a +{ "0": "A", "1": "B", "2": "C", A: 0, B: 1, C: 2 } +0 diff --git a/cli/tests/import_blob_url_error_stack.ts b/cli/tests/import_blob_url_error_stack.ts new file mode 100644 index 000000000..f9c4f2e9d --- /dev/null +++ b/cli/tests/import_blob_url_error_stack.ts @@ -0,0 +1,13 @@ +const blob = new Blob( + [ + "enum A {\n A,\n B,\n C,\n }\n \n export function a() {\n throw new Error(`Hello ${A.C}`);\n }\n ", + ], + { + type: "application/typescript", + }, +); +const url = URL.createObjectURL(blob); + +const { a } = await import(url); + +a(); diff --git a/cli/tests/import_blob_url_error_stack.ts.out b/cli/tests/import_blob_url_error_stack.ts.out new file mode 100644 index 000000000..18ca023e3 --- /dev/null +++ b/cli/tests/import_blob_url_error_stack.ts.out @@ -0,0 +1,6 @@ +[WILDCARD]error: Uncaught (in promise) Error: Hello 2 + throw new Error(`Hello ${A.C}`); + ^ + at a (blob:null/[WILDCARD]:8:10) + at file:///[WILDCARD]/cli/tests/import_blob_url_error_stack.ts:13:1 +[WILDCARD] diff --git a/cli/tests/import_blob_url_import_relative.ts b/cli/tests/import_blob_url_import_relative.ts new file mode 100644 index 000000000..ad130bdac --- /dev/null +++ b/cli/tests/import_blob_url_import_relative.ts @@ -0,0 +1,8 @@ +const blob = new Blob(['export { a } from "./a.ts";'], { + type: "application/javascript", +}); +const url = URL.createObjectURL(blob); + +const a = await import(url); + +console.log(a); diff --git a/cli/tests/import_blob_url_import_relative.ts.out b/cli/tests/import_blob_url_import_relative.ts.out new file mode 100644 index 000000000..9d47ab719 --- /dev/null +++ b/cli/tests/import_blob_url_import_relative.ts.out @@ -0,0 +1,4 @@ +error: Uncaught (in promise) TypeError: invalid URL: relative URL with a cannot-be-a-base base +const a = await import(url); + ^ + at async file://[WILDCARD]/cli/tests/import_blob_url_import_relative.ts:6:11 diff --git a/cli/tests/import_blob_url_imports.ts b/cli/tests/import_blob_url_imports.ts new file mode 100644 index 000000000..7c2b10865 --- /dev/null +++ b/cli/tests/import_blob_url_imports.ts @@ -0,0 +1,11 @@ +const blob = new Blob( + [ + 'export { printHello } from "http://localhost:4545/cli/tests/subdir/mod2.ts"', + ], + { type: "application/javascript" }, +); +const url = URL.createObjectURL(blob); + +const { printHello } = await import(url); + +printHello(); diff --git a/cli/tests/import_blob_url_imports.ts.out b/cli/tests/import_blob_url_imports.ts.out new file mode 100644 index 000000000..e965047ad --- /dev/null +++ b/cli/tests/import_blob_url_imports.ts.out @@ -0,0 +1 @@ +Hello diff --git a/cli/tests/import_blob_url_jsx.ts b/cli/tests/import_blob_url_jsx.ts new file mode 100644 index 000000000..8d645796a --- /dev/null +++ b/cli/tests/import_blob_url_jsx.ts @@ -0,0 +1,16 @@ +const blob = new Blob( + ["export default function() {\n return <div>Hello Deno!</div>\n}\n"], + { type: "text/jsx" }, +); +const url = URL.createObjectURL(blob); + +const { default: render } = await import(url); + +// deno-lint-ignore no-explicit-any +(globalThis as any).React = { + createElement(...args: unknown[]) { + console.log(...args); + }, +}; + +render(); diff --git a/cli/tests/import_blob_url_jsx.ts.out b/cli/tests/import_blob_url_jsx.ts.out new file mode 100644 index 000000000..c1c85f250 --- /dev/null +++ b/cli/tests/import_blob_url_jsx.ts.out @@ -0,0 +1 @@ +div null Hello Deno! diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index 5f8d5d403..73fdcc994 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -3683,6 +3683,34 @@ console.log("finish"); output: "import_dynamic_data_url.ts.out", }); + itest!(import_blob_url_error_stack { + args: "run --quiet --reload import_blob_url_error_stack.ts", + output: "import_blob_url_error_stack.ts.out", + exit_code: 1, + }); + + itest!(import_blob_url_import_relative { + args: "run --quiet --reload import_blob_url_import_relative.ts", + output: "import_blob_url_import_relative.ts.out", + exit_code: 1, + }); + + itest!(import_blob_url_imports { + args: "run --quiet --reload import_blob_url_imports.ts", + output: "import_blob_url_imports.ts.out", + http_server: true, + }); + + itest!(import_blob_url_jsx { + args: "run --quiet --reload import_blob_url_jsx.ts", + output: "import_blob_url_jsx.ts.out", + }); + + itest!(import_blob_url { + args: "run --quiet --reload import_blob_url.ts", + output: "import_blob_url.ts.out", + }); + itest!(import_file_with_colon { args: "run --quiet --reload import_file_with_colon.ts", output: "import_file_with_colon.ts.out", diff --git a/cli/tests/unsupported_dynamic_import_scheme.out b/cli/tests/unsupported_dynamic_import_scheme.out index 9160f935f..c708fced4 100644 --- a/cli/tests/unsupported_dynamic_import_scheme.out +++ b/cli/tests/unsupported_dynamic_import_scheme.out @@ -1,5 +1,6 @@ error: Uncaught (in promise) TypeError: Unsupported scheme "xxx" for module "xxx:". Supported schemes: [ "data", + "blob", "file", "http", "https", |