summaryrefslogtreecommitdiff
path: root/cli/tests/unit
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2021-06-26 11:17:05 +0200
committerGitHub <noreply@github.com>2021-06-26 11:17:05 +0200
commit22e7b0f585fb3715ef1894b2c26a0e3cbbd43e9e (patch)
tree164afa9ed31212b5df8d0d79a6929dde5eb8302e /cli/tests/unit
parent1f4cdc067a4e26921ee53d58751bb60279d3cab2 (diff)
fix: MessagePort in message for postMessage transfers (#11103)
Diffstat (limited to 'cli/tests/unit')
-rw-r--r--cli/tests/unit/message_channel_test.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/cli/tests/unit/message_channel_test.ts b/cli/tests/unit/message_channel_test.ts
index 0cb2671d5..2c6062658 100644
--- a/cli/tests/unit/message_channel_test.ts
+++ b/cli/tests/unit/message_channel_test.ts
@@ -31,3 +31,29 @@ Deno.test("messagechannel", async () => {
mc.port2.close();
mc2.port2.close();
});
+
+Deno.test("messagechannel clone port", async () => {
+ const mc = new MessageChannel();
+ const mc2 = new MessageChannel();
+ assert(mc.port1);
+ assert(mc.port2);
+
+ const promise = deferred();
+
+ mc.port2.onmessage = (e) => {
+ const { port } = e.data;
+ assertEquals(e.ports.length, 1);
+ assert(e.ports[0] instanceof MessagePort);
+ assertEquals(e.ports[0], port);
+ e.ports[0].close();
+ promise.resolve();
+ };
+
+ mc.port1.postMessage({ port: mc2.port1 }, [mc2.port1]);
+ mc.port1.close();
+
+ await promise;
+
+ mc.port2.close();
+ mc2.port2.close();
+});