diff options
author | Luca Casonato <hello@lcas.dev> | 2021-06-26 11:17:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-26 11:17:05 +0200 |
commit | 22e7b0f585fb3715ef1894b2c26a0e3cbbd43e9e (patch) | |
tree | 164afa9ed31212b5df8d0d79a6929dde5eb8302e /cli/tests/unit | |
parent | 1f4cdc067a4e26921ee53d58751bb60279d3cab2 (diff) |
fix: MessagePort in message for postMessage transfers (#11103)
Diffstat (limited to 'cli/tests/unit')
-rw-r--r-- | cli/tests/unit/message_channel_test.ts | 26 |
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(); +}); |