From b255a05f189bfd96eccc813130f6cb9e1698d019 Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Tue, 10 Nov 2020 14:15:42 +0200 Subject: fix(web/worker) define event handlers in DOM order (#8334) --- cli/tests/workers_test.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'cli/tests/workers_test.ts') diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts index 31dc72deb..7cff6848b 100644 --- a/cli/tests/workers_test.ts +++ b/cli/tests/workers_test.ts @@ -334,3 +334,27 @@ Deno.test({ w.terminate(); }, }); + +Deno.test({ + name: "Worker event handler order", + fn: async function (): Promise { + const promise = createResolvable(); + const w = new Worker( + new URL("subdir/test_worker.ts", import.meta.url).href, + { type: "module", name: "tsWorker" }, + ); + const arr: number[] = []; + w.addEventListener("message", () => arr.push(1)); + w.onmessage = (e): void => { + arr.push(2); + }; + w.addEventListener("message", () => arr.push(3)); + w.addEventListener("message", () => { + assertEquals(arr, [1, 2, 3]); + promise.resolve(); + }); + w.postMessage("Hello World"); + await promise; + w.terminate(); + }, +}); -- cgit v1.2.3