diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/integration/run_tests.rs | 5 | ||||
-rw-r--r-- | cli/tests/worker_event_handler_test.js | 5 | ||||
-rw-r--r-- | cli/tests/worker_event_handler_test.js.out | 11 | ||||
-rw-r--r-- | cli/tests/workers/worker_event_handlers.js | 23 |
4 files changed, 44 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index d2997d747..2e2b0400c 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -1155,6 +1155,11 @@ itest!(error_import_map_unable_to_load { exit_code: 1, }); +itest!(worker_event_handler_test { + args: "run --quiet --reload --allow-read worker_event_handler_test.js", + output: "worker_event_handler_test.js.out", +}); + #[test] fn no_validate_asm() { let output = util::deno_cmd() diff --git a/cli/tests/worker_event_handler_test.js b/cli/tests/worker_event_handler_test.js new file mode 100644 index 000000000..e0ce3d9f8 --- /dev/null +++ b/cli/tests/worker_event_handler_test.js @@ -0,0 +1,5 @@ +const w = new Worker( + new URL("./workers/worker_event_handlers.js", import.meta.url).href, + { type: "module" }, +); +w.postMessage({}); diff --git a/cli/tests/worker_event_handler_test.js.out b/cli/tests/worker_event_handler_test.js.out new file mode 100644 index 000000000..5556633b1 --- /dev/null +++ b/cli/tests/worker_event_handler_test.js.out @@ -0,0 +1,11 @@ +Target from self.onmessage: [object DedicatedWorkerGlobalScope] +Target from message event listener: [object DedicatedWorkerGlobalScope] +Arguments from self.onerror: [ + "Some error message", + "", + 0, + 0, + Error: Some error message + at [WILDCARD] +] +Is event canceled?: true diff --git a/cli/tests/workers/worker_event_handlers.js b/cli/tests/workers/worker_event_handlers.js new file mode 100644 index 000000000..c8976f79e --- /dev/null +++ b/cli/tests/workers/worker_event_handlers.js @@ -0,0 +1,23 @@ +self.onmessage = (evt) => { + console.log("Target from self.onmessage:", String(evt.target)); +}; + +self.addEventListener("message", (evt) => { + console.log("Target from message event listener:", String(evt.target)); + + // Throw an error here so the global's error event will fire. + throw new Error("Some error message"); +}); + +self.onerror = (...args) => { + console.log("Arguments from self.onerror:", args); + return true; +}; + +self.addEventListener("error", (evt) => { + // Returning true from self.onerror means that subsequent event listeners + // should see the event as canceled. + console.log("Is event canceled?:", evt.defaultPrevented); + + self.close(); +}); |