1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 15:24:46 -05:00
denoland-deno/cli/tests/unit/message_channel_test.ts
Tareque Md Hanif eff3e43296
chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128)
Migrate to use `Promise.withResolvers()` instead of `deferred` in some
of the tests in `cli/tests/unit/`.
Issue: #21041
2023-11-10 14:29:09 -07:00

58 lines
1.4 KiB
TypeScript

// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
// NOTE: these are just sometests to test the TypeScript types. Real coverage is
// provided by WPT.
import {
assert,
assertEquals,
} from "../../../test_util/std/testing/asserts.ts";
Deno.test("messagechannel", async () => {
const mc = new MessageChannel();
const mc2 = new MessageChannel();
assert(mc.port1);
assert(mc.port2);
const { promise, resolve } = Promise.withResolvers<void>();
mc.port2.onmessage = (e) => {
assertEquals(e.data, "hello");
assertEquals(e.ports.length, 1);
assert(e.ports[0] instanceof MessagePort);
e.ports[0].close();
resolve();
};
mc.port1.postMessage("hello", [mc2.port1]);
mc.port1.close();
await promise;
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, resolve } = Promise.withResolvers<void>();
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();
resolve();
};
mc.port1.postMessage({ port: mc2.port1 }, [mc2.port1]);
mc.port1.close();
await promise;
mc.port2.close();
mc2.port2.close();
});