diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-04-16 23:40:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-16 23:40:29 +0200 |
commit | d359789c529d3c7b5fab5471309eaa4b75fc0bfd (patch) | |
tree | d9e9d45c2d65054c382a5bea1d818ea049b832bd /cli/tests | |
parent | 1cd1f7de70b8ee68d2f6757f2b38a712ea1f3876 (diff) |
feat: support Deno namespace in Worker API (#4784)
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/subdir/deno_worker.ts | 7 | ||||
-rw-r--r-- | cli/tests/subdir/non_deno_worker.js | 7 | ||||
-rw-r--r-- | cli/tests/workers_test.out | 5 | ||||
-rw-r--r-- | cli/tests/workers_test.ts | 33 |
4 files changed, 50 insertions, 2 deletions
diff --git a/cli/tests/subdir/deno_worker.ts b/cli/tests/subdir/deno_worker.ts new file mode 100644 index 000000000..6a57c47f0 --- /dev/null +++ b/cli/tests/subdir/deno_worker.ts @@ -0,0 +1,7 @@ +onmessage = function (e): void { + if (typeof self.Deno === "undefined") { + throw new Error("Deno namespace not available in worker"); + } + + postMessage(e.data); +}; diff --git a/cli/tests/subdir/non_deno_worker.js b/cli/tests/subdir/non_deno_worker.js new file mode 100644 index 000000000..773721560 --- /dev/null +++ b/cli/tests/subdir/non_deno_worker.js @@ -0,0 +1,7 @@ +onmessage = function (e) { + if (typeof self.Deno !== "undefined") { + throw new Error("Deno namespace unexpectedly available in worker"); + } + + postMessage(e.data); +}; diff --git a/cli/tests/workers_test.out b/cli/tests/workers_test.out index d3c25d3dd..903226283 100644 --- a/cli/tests/workers_test.out +++ b/cli/tests/workers_test.out @@ -1,4 +1,4 @@ -running 8 tests +running 9 tests test worker terminate ... ok [WILDCARD] test worker nested ... ok [WILDCARD] test worker throws when executing ... ok [WILDCARD] @@ -7,5 +7,6 @@ test worker terminate busy loop ... ok [WILDCARD] test worker race condition ... ok [WILDCARD] test worker is event listener ... ok [WILDCARD] test worker scope is event listener ... ok [WILDCARD] +test worker with Deno namespace ... ok [WILDCARD] -test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [WILDCARD] +test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [WILDCARD] diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts index c51adcf75..c4b93db3c 100644 --- a/cli/tests/workers_test.ts +++ b/cli/tests/workers_test.ts @@ -257,3 +257,36 @@ Deno.test({ worker.terminate(); }, }); + +Deno.test({ + name: "worker with Deno namespace", + fn: async function (): Promise<void> { + const promise = createResolvable(); + const promise2 = createResolvable(); + + const regularWorker = new Worker("../tests/subdir/non_deno_worker.js", { + type: "module", + }); + const denoWorker = new Worker("../tests/subdir/deno_worker.ts", { + type: "module", + deno: true, + }); + + regularWorker.onmessage = (e): void => { + assertEquals(e.data, "Hello World"); + regularWorker.terminate(); + promise.resolve(); + }; + + denoWorker.onmessage = (e): void => { + assertEquals(e.data, "Hello World"); + denoWorker.terminate(); + promise2.resolve(); + }; + + regularWorker.postMessage("Hello World"); + await promise; + denoWorker.postMessage("Hello World"); + await promise2; + }, +}); |