summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-04-16 23:40:29 +0200
committerGitHub <noreply@github.com>2020-04-16 23:40:29 +0200
commitd359789c529d3c7b5fab5471309eaa4b75fc0bfd (patch)
treed9e9d45c2d65054c382a5bea1d818ea049b832bd /cli/tests
parent1cd1f7de70b8ee68d2f6757f2b38a712ea1f3876 (diff)
feat: support Deno namespace in Worker API (#4784)
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/subdir/deno_worker.ts7
-rw-r--r--cli/tests/subdir/non_deno_worker.js7
-rw-r--r--cli/tests/workers_test.out5
-rw-r--r--cli/tests/workers_test.ts33
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;
+ },
+});