diff options
Diffstat (limited to 'tests/unit_node')
-rw-r--r-- | tests/unit_node/worker_threads_test.ts | 31 |
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(); + }, +}); |