summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorLeo Kettmeir <crowlkats@toaxl.com>2023-02-07 20:22:46 +0100
committerGitHub <noreply@github.com>2023-02-07 20:22:46 +0100
commitb4aa1530970f7b9cc4e6f2f27e077852c4e178d3 (patch)
tree3d008912affe8550692183bd2697a386db5e3c79 /cli/tests
parent65500f36e870b4ada3996b06aa287e30177d21a3 (diff)
refactor: Use ES modules for internal runtime code (#17648)
This PR refactors all internal js files (except core) to be written as ES modules. `__bootstrap`has been mostly replaced with static imports in form in `internal:[path to file from repo root]`. To specify if files are ESM, an `esm` method has been added to `Extension`, similar to the `js` method. A new ModuleLoader called `InternalModuleLoader` has been added to enable the loading of internal specifiers, which is used in all situations except when a snapshot is only loaded, and not a new one is created from it. --------- Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/integration/run_tests.rs12
-rw-r--r--cli/tests/testdata/run/event_listener_error_immediate_exit.ts.out1
-rw-r--r--cli/tests/testdata/run/internal_dynamic_import.ts1
-rw-r--r--cli/tests/testdata/run/internal_dynamic_import.ts.out4
-rw-r--r--cli/tests/testdata/run/internal_import.ts1
-rw-r--r--cli/tests/testdata/run/internal_import.ts.out8
6 files changed, 26 insertions, 1 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index 923232f9d..9c0319a7f 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -3844,3 +3844,15 @@ itest!(node_prefix_missing {
envs: env_vars_for_npm_tests_no_sync_download(),
exit_code: 1,
});
+
+itest!(internal_import {
+ args: "run run/internal_import.ts",
+ output: "run/internal_import.ts.out",
+ exit_code: 1,
+});
+
+itest!(internal_dynamic_import {
+ args: "run run/internal_dynamic_import.ts",
+ output: "run/internal_dynamic_import.ts.out",
+ exit_code: 1,
+});
diff --git a/cli/tests/testdata/run/event_listener_error_immediate_exit.ts.out b/cli/tests/testdata/run/event_listener_error_immediate_exit.ts.out
index 1fb3ce76a..8f03f71b8 100644
--- a/cli/tests/testdata/run/event_listener_error_immediate_exit.ts.out
+++ b/cli/tests/testdata/run/event_listener_error_immediate_exit.ts.out
@@ -1,5 +1,4 @@
1
-queueMicrotask
error: Uncaught Error: bar
throw new Error("bar");
^
diff --git a/cli/tests/testdata/run/internal_dynamic_import.ts b/cli/tests/testdata/run/internal_dynamic_import.ts
new file mode 100644
index 000000000..3fb2791e3
--- /dev/null
+++ b/cli/tests/testdata/run/internal_dynamic_import.ts
@@ -0,0 +1 @@
+await import("internal:runtime/js/01_build.js");
diff --git a/cli/tests/testdata/run/internal_dynamic_import.ts.out b/cli/tests/testdata/run/internal_dynamic_import.ts.out
new file mode 100644
index 000000000..fa98b8733
--- /dev/null
+++ b/cli/tests/testdata/run/internal_dynamic_import.ts.out
@@ -0,0 +1,4 @@
+error: Uncaught TypeError: Cannot load internal module from external code
+await import("internal:runtime/js/01_build.js");
+^
+ at [WILDCARD]/internal_dynamic_import.ts:1:1
diff --git a/cli/tests/testdata/run/internal_import.ts b/cli/tests/testdata/run/internal_import.ts
new file mode 100644
index 000000000..666b68769
--- /dev/null
+++ b/cli/tests/testdata/run/internal_import.ts
@@ -0,0 +1 @@
+import "internal:runtime/js/01_build.js";
diff --git a/cli/tests/testdata/run/internal_import.ts.out b/cli/tests/testdata/run/internal_import.ts.out
new file mode 100644
index 000000000..142308a38
--- /dev/null
+++ b/cli/tests/testdata/run/internal_import.ts.out
@@ -0,0 +1,8 @@
+error: Unsupported scheme "internal" for module "internal:runtime/js/01_build.js". Supported schemes: [
+ "data",
+ "blob",
+ "file",
+ "http",
+ "https",
+]
+ at [WILDCARD]