summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2021-10-01 10:30:55 +0100
committerGitHub <noreply@github.com>2021-10-01 11:30:55 +0200
commitb354eaa2475a16f66e99efc82bebf5bd620406e4 (patch)
treeaa8d15ba548032e44834bb736b1d32882bf60688 /cli/tests
parentc0b6c0eea59f0bea0ab12b2949a7c37c1a774293 (diff)
fix(runtime/js/workers): throw errors instead of using an op (#12249)
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/integration/worker_tests.rs14
-rw-r--r--cli/tests/testdata/worker_drop_handle_race.js.out2
-rw-r--r--cli/tests/testdata/workers/async_error.ts4
-rw-r--r--cli/tests/testdata/workers/message_handler_error.ts4
-rw-r--r--cli/tests/testdata/workers/nonexistent_worker.out2
-rw-r--r--cli/tests/testdata/workers/permissions_blob_local.ts.out2
-rw-r--r--cli/tests/testdata/workers/permissions_blob_remote.ts.out2
-rw-r--r--cli/tests/testdata/workers/permissions_data_local.ts.out2
-rw-r--r--cli/tests/testdata/workers/permissions_data_remote.ts.out2
-rw-r--r--cli/tests/testdata/workers/permissions_dynamic_remote.ts.out2
-rw-r--r--cli/tests/testdata/workers/permissions_remote_remote.ts.out2
-rw-r--r--cli/tests/testdata/workers/test.ts5
-rw-r--r--cli/tests/testdata/workers/test_worker.js11
-rw-r--r--cli/tests/testdata/workers/worker_async_error.ts5
-rw-r--r--cli/tests/testdata/workers/worker_async_error.ts.out7
-rw-r--r--cli/tests/testdata/workers/worker_error.ts.out2
-rw-r--r--cli/tests/testdata/workers/worker_message_handler_error.ts8
-rw-r--r--cli/tests/testdata/workers/worker_message_handler_error.ts.out7
-rw-r--r--cli/tests/testdata/workers/worker_nested_error.ts.out10
19 files changed, 65 insertions, 28 deletions
diff --git a/cli/tests/integration/worker_tests.rs b/cli/tests/integration/worker_tests.rs
index c158776ee..bf1057821 100644
--- a/cli/tests/integration/worker_tests.rs
+++ b/cli/tests/integration/worker_tests.rs
@@ -20,6 +20,20 @@ itest!(worker_nested_error {
exit_code: 1,
});
+itest!(worker_async_error {
+ args: "run -A --quiet --reload workers/worker_async_error.ts",
+ output: "workers/worker_async_error.ts.out",
+ http_server: true,
+ exit_code: 1,
+});
+
+itest!(worker_message_handler_error {
+ args: "run -A --quiet --reload workers/worker_message_handler_error.ts",
+ output: "workers/worker_message_handler_error.ts.out",
+ http_server: true,
+ exit_code: 1,
+});
+
itest!(nonexistent_worker {
args: "run --allow-read workers/nonexistent_worker.ts",
output: "workers/nonexistent_worker.out",
diff --git a/cli/tests/testdata/worker_drop_handle_race.js.out b/cli/tests/testdata/worker_drop_handle_race.js.out
index 71dfde620..271e07854 100644
--- a/cli/tests/testdata/worker_drop_handle_race.js.out
+++ b/cli/tests/testdata/worker_drop_handle_race.js.out
@@ -4,5 +4,5 @@ error: Uncaught (in worker "") Error
at [WILDCARD]/workers/drop_handle_race.js:2:9
at fire (deno:ext/timers/[WILDCARD])
at handleTimerMacrotask (deno:ext/timers/[WILDCARD])
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl (deno:runtime/js/11_workers.js:[WILDCARD])
diff --git a/cli/tests/testdata/workers/async_error.ts b/cli/tests/testdata/workers/async_error.ts
new file mode 100644
index 000000000..154b957b1
--- /dev/null
+++ b/cli/tests/testdata/workers/async_error.ts
@@ -0,0 +1,4 @@
+// deno-lint-ignore require-await
+(async () => {
+ throw new Error("bar");
+})();
diff --git a/cli/tests/testdata/workers/message_handler_error.ts b/cli/tests/testdata/workers/message_handler_error.ts
new file mode 100644
index 000000000..3416faad1
--- /dev/null
+++ b/cli/tests/testdata/workers/message_handler_error.ts
@@ -0,0 +1,4 @@
+postMessage("ready");
+onmessage = () => {
+ throw new Error("bar");
+};
diff --git a/cli/tests/testdata/workers/nonexistent_worker.out b/cli/tests/testdata/workers/nonexistent_worker.out
index 1651321bc..99e94bfc9 100644
--- a/cli/tests/testdata/workers/nonexistent_worker.out
+++ b/cli/tests/testdata/workers/nonexistent_worker.out
@@ -1,3 +1,3 @@
[WILDCARD]error: Uncaught (in worker "") Cannot resolve module "file:///[WILDCARD]/workers/doesnt_exist.js".
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/permissions_blob_local.ts.out b/cli/tests/testdata/workers/permissions_blob_local.ts.out
index 0835777ec..b35d1d4db 100644
--- a/cli/tests/testdata/workers/permissions_blob_local.ts.out
+++ b/cli/tests/testdata/workers/permissions_blob_local.ts.out
@@ -1,4 +1,4 @@
error: Uncaught (in worker "") Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag
at blob:null/[WILDCARD]:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/permissions_blob_remote.ts.out b/cli/tests/testdata/workers/permissions_blob_remote.ts.out
index 2d01458ca..26936971a 100644
--- a/cli/tests/testdata/workers/permissions_blob_remote.ts.out
+++ b/cli/tests/testdata/workers/permissions_blob_remote.ts.out
@@ -1,4 +1,4 @@
error: Uncaught (in worker "") Requires net access to "example.com", run again with the --allow-net flag
at blob:null/[WILDCARD]:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/permissions_data_local.ts.out b/cli/tests/testdata/workers/permissions_data_local.ts.out
index 2a6be2b57..1e8c5fffa 100644
--- a/cli/tests/testdata/workers/permissions_data_local.ts.out
+++ b/cli/tests/testdata/workers/permissions_data_local.ts.out
@@ -1,4 +1,4 @@
error: Uncaught (in worker "") Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag
at data:application/javascript;base64,[WILDCARD]:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/permissions_data_remote.ts.out b/cli/tests/testdata/workers/permissions_data_remote.ts.out
index 90677892a..92eadf284 100644
--- a/cli/tests/testdata/workers/permissions_data_remote.ts.out
+++ b/cli/tests/testdata/workers/permissions_data_remote.ts.out
@@ -1,4 +1,4 @@
error: Uncaught (in worker "") Requires net access to "example.com", run again with the --allow-net flag
at data:application/javascript;base64,aW1wb3J0ICJodHRwczovL2V4YW1wbGUuY29tL3NvbWUvZmlsZS50cyI7:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/permissions_dynamic_remote.ts.out b/cli/tests/testdata/workers/permissions_dynamic_remote.ts.out
index 3c4523ce0..e5015abff 100644
--- a/cli/tests/testdata/workers/permissions_dynamic_remote.ts.out
+++ b/cli/tests/testdata/workers/permissions_dynamic_remote.ts.out
@@ -2,5 +2,5 @@ error: Uncaught (in worker "") (in promise) TypeError: Requires net access to "e
await import("https://example.com/some/file.ts");
^
at async http://localhost:4545/workers/dynamic_remote.ts:2:1
-[WILDCARD]error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+[WILDCARD]error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/permissions_remote_remote.ts.out b/cli/tests/testdata/workers/permissions_remote_remote.ts.out
index 94a92c72d..8998891a3 100644
--- a/cli/tests/testdata/workers/permissions_remote_remote.ts.out
+++ b/cli/tests/testdata/workers/permissions_remote_remote.ts.out
@@ -1,4 +1,4 @@
error: Uncaught (in worker "") Requires net access to "example.com", run again with the --allow-net flag
at http://localhost:4545/workers/static_remote.ts:2:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/test.ts b/cli/tests/testdata/workers/test.ts
index 9d3855fe1..effd104f5 100644
--- a/cli/tests/testdata/workers/test.ts
+++ b/cli/tests/testdata/workers/test.ts
@@ -34,11 +34,6 @@ Deno.test({
tsWorker.postMessage("Hello World");
};
- jsWorker.onerror = (e: Event) => {
- e.preventDefault();
- jsWorker.postMessage("Hello World");
- };
-
jsWorker.postMessage("Hello World");
await promise;
tsWorker.terminate();
diff --git a/cli/tests/testdata/workers/test_worker.js b/cli/tests/testdata/workers/test_worker.js
index 4260975a6..2b2d1eeec 100644
--- a/cli/tests/testdata/workers/test_worker.js
+++ b/cli/tests/testdata/workers/test_worker.js
@@ -1,19 +1,8 @@
-let thrown = false;
-
if (self.name !== "") {
throw Error(`Bad worker name: ${self.name}, expected empty string.`);
}
onmessage = function (e) {
- if (thrown === false) {
- thrown = true;
- throw new SyntaxError("[test error]");
- }
-
postMessage(e.data);
close();
};
-
-onerror = function () {
- return false;
-};
diff --git a/cli/tests/testdata/workers/worker_async_error.ts b/cli/tests/testdata/workers/worker_async_error.ts
new file mode 100644
index 000000000..05d2ffcb6
--- /dev/null
+++ b/cli/tests/testdata/workers/worker_async_error.ts
@@ -0,0 +1,5 @@
+const worker = new Worker(
+ new URL("async_error.ts", import.meta.url).href,
+ { type: "module", name: "foo" },
+);
+setTimeout(() => worker.terminate(), 30000);
diff --git a/cli/tests/testdata/workers/worker_async_error.ts.out b/cli/tests/testdata/workers/worker_async_error.ts.out
new file mode 100644
index 000000000..0a05534c5
--- /dev/null
+++ b/cli/tests/testdata/workers/worker_async_error.ts.out
@@ -0,0 +1,7 @@
+error: Uncaught (in worker "foo") (in promise) Error: bar
+ throw new Error("bar");
+ ^
+ at [WILDCARD]/async_error.ts:[WILDCARD]
+ at [WILDCARD]/async_error.ts:[WILDCARD]
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
+ at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/worker_error.ts.out b/cli/tests/testdata/workers/worker_error.ts.out
index 4a8e92f00..cb0a02550 100644
--- a/cli/tests/testdata/workers/worker_error.ts.out
+++ b/cli/tests/testdata/workers/worker_error.ts.out
@@ -1,5 +1,5 @@
[WILDCARD]error: Uncaught (in worker "bar") Error: foo[WILDCARD]
at foo ([WILDCARD])
at [WILDCARD]
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/worker_message_handler_error.ts b/cli/tests/testdata/workers/worker_message_handler_error.ts
new file mode 100644
index 000000000..eb538c1ce
--- /dev/null
+++ b/cli/tests/testdata/workers/worker_message_handler_error.ts
@@ -0,0 +1,8 @@
+const worker = new Worker(
+ new URL("message_handler_error.ts", import.meta.url).href,
+ { type: "module", name: "foo" },
+);
+worker.onmessage = () => {
+ worker.postMessage("ready");
+};
+setTimeout(() => worker.terminate(), 30000);
diff --git a/cli/tests/testdata/workers/worker_message_handler_error.ts.out b/cli/tests/testdata/workers/worker_message_handler_error.ts.out
new file mode 100644
index 000000000..56458d5e4
--- /dev/null
+++ b/cli/tests/testdata/workers/worker_message_handler_error.ts.out
@@ -0,0 +1,7 @@
+error: Uncaught (in worker "foo") (in promise) Error: bar
+ throw new Error("bar");
+ ^
+ at onmessage ([WILDCARD]/message_handler_error.ts:[WILDCARD])
+ at [WILDCARD]
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
+ at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/testdata/workers/worker_nested_error.ts.out b/cli/tests/testdata/workers/worker_nested_error.ts.out
index 4a8e92f00..5c978ca9b 100644
--- a/cli/tests/testdata/workers/worker_nested_error.ts.out
+++ b/cli/tests/testdata/workers/worker_nested_error.ts.out
@@ -1,5 +1,9 @@
[WILDCARD]error: Uncaught (in worker "bar") Error: foo[WILDCARD]
- at foo ([WILDCARD])
- at [WILDCARD]
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
+ throw new Error("foo");
+ ^
+ at foo ([WILDCARD]/workers/error.ts:[WILDCARD])
+ at [WILDCARD]/workers/error.ts:[WILDCARD]
+error: Uncaught (in worker "baz") (in promise) Error: Unhandled error event in child worker.
+ at Worker.#pollControl ([WILDCARD])
+error: Uncaught (in promise) Error: Unhandled error event in child worker.
at Worker.#pollControl ([WILDCARD])