diff options
author | crowlKats <13135287+crowlKats@users.noreply.github.com> | 2020-04-13 18:34:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-13 18:34:32 +0200 |
commit | 25bd6868e5af9f30656dabeff9683b256e0a9370 (patch) | |
tree | 60925e31d536467e96a90dbf4bb10bf91fbe37f5 /cli/tests/workers_test.ts | |
parent | 0ea6eb83a906bff543be4c3301f23444986b022b (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.ts | 47 |
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(); + }, +}); |