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.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/unit_node/worker_threads_test.ts b/tests/unit_node/worker_threads_test.ts
index 2351e1052..bd600469b 100644
--- a/tests/unit_node/worker_threads_test.ts
+++ b/tests/unit_node/worker_threads_test.ts
@@ -414,3 +414,25 @@ Deno.test({
mainPort.close();
},
});
+
+// Regression test for https://github.com/denoland/deno/issues/23362
+Deno.test("[node/worker_threads] receiveMessageOnPort works if there's pending read", function () {
+ const { port1, port2 } = new workerThreads.MessageChannel();
+
+ const message1 = { hello: "world" };
+ const message2 = { foo: "bar" };
+
+ assertEquals(workerThreads.receiveMessageOnPort(port2), undefined);
+ port2.start();
+
+ port1.postMessage(message1);
+ port1.postMessage(message2);
+ assertEquals(workerThreads.receiveMessageOnPort(port2), {
+ message: message1,
+ });
+ assertEquals(workerThreads.receiveMessageOnPort(port2), {
+ message: message2,
+ });
+ port1.close();
+ port2.close();
+});