summaryrefslogtreecommitdiff
path: root/tests/unit_node/worker_threads_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_node/worker_threads_test.ts')
-rw-r--r--tests/unit_node/worker_threads_test.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/unit_node/worker_threads_test.ts b/tests/unit_node/worker_threads_test.ts
index d9fe9f77d..ac797601f 100644
--- a/tests/unit_node/worker_threads_test.ts
+++ b/tests/unit_node/worker_threads_test.ts
@@ -590,3 +590,34 @@ Deno.test({
channel.port2.close();
},
});
+
+Deno.test({
+ name: "[node/worker_threads] Emits online event",
+ async fn() {
+ const worker = new workerThreads.Worker(
+ `
+ import { parentPort } from "node:worker_threads";
+ const p = Promise.withResolvers();
+ let ok = false;
+ parentPort.on("message", () => {
+ ok = true;
+ p.resolve();
+ });
+ await Promise.race([p.promise, new Promise(resolve => setTimeout(resolve, 20000))]);
+ if (ok) {
+ parentPort.postMessage("ok");
+ } else {
+ parentPort.postMessage("timed out");
+ }
+ `,
+ {
+ eval: true,
+ },
+ );
+ worker.on("online", () => {
+ worker.postMessage("ok");
+ });
+ assertEquals((await once(worker, "message"))[0], "ok");
+ worker.terminate();
+ },
+});