summaryrefslogtreecommitdiff
path: root/cli/tests/workers_test.ts
diff options
context:
space:
mode:
authorcrowlKats <13135287+crowlKats@users.noreply.github.com>2020-04-13 18:34:32 +0200
committerGitHub <noreply@github.com>2020-04-13 18:34:32 +0200
commit25bd6868e5af9f30656dabeff9683b256e0a9370 (patch)
tree60925e31d536467e96a90dbf4bb10bf91fbe37f5 /cli/tests/workers_test.ts
parent0ea6eb83a906bff543be4c3301f23444986b022b (diff)
feat(worker): add MessageEvent, ErrorEvent and handling to Worker API (#4391)
Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/tests/workers_test.ts')
-rw-r--r--cli/tests/workers_test.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts
index 2c56a491c..bb00d67fd 100644
--- a/cli/tests/workers_test.ts
+++ b/cli/tests/workers_test.ts
@@ -184,3 +184,50 @@ Deno.test({
await promise;
},
});
+
+Deno.test({
+ name: "worker is event listener",
+ fn: async function (): Promise<void> {
+ let messageHandlersCalled = 0;
+ let errorHandlersCalled = 0;
+
+ const promise1 = createResolvable();
+ const promise2 = createResolvable();
+
+ const worker = new Worker("../tests/subdir/event_worker.js", {
+ type: "module",
+ });
+
+ worker.onmessage = (_e: Event): void => {
+ messageHandlersCalled++;
+ };
+ worker.addEventListener("message", (_e: Event) => {
+ messageHandlersCalled++;
+ });
+ worker.addEventListener("message", (_e: Event) => {
+ messageHandlersCalled++;
+ promise1.resolve();
+ });
+
+ worker.onerror = (e): void => {
+ errorHandlersCalled++;
+ e.preventDefault();
+ };
+ worker.addEventListener("error", (_e: Event) => {
+ errorHandlersCalled++;
+ });
+ worker.addEventListener("error", (_e: Event) => {
+ errorHandlersCalled++;
+ promise2.resolve();
+ });
+
+ worker.postMessage("ping");
+ await promise1;
+ assertEquals(messageHandlersCalled, 3);
+
+ worker.postMessage("boom");
+ await promise2;
+ assertEquals(errorHandlersCalled, 3);
+ worker.terminate();
+ },
+});