From 16ae4a0d5799c9a4ed776f32929f73b1063ae4e8 Mon Sep 17 00:00:00 2001 From: Leo K Date: Mon, 9 Aug 2021 10:39:00 +0200 Subject: feat(extensions/web): add structuredClone function (#11572) Co-authored-by: Luca Casonato --- cli/tests/unit/structured_clone_test.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 cli/tests/unit/structured_clone_test.ts (limited to 'cli/tests/unit') diff --git a/cli/tests/unit/structured_clone_test.ts b/cli/tests/unit/structured_clone_test.ts new file mode 100644 index 000000000..f25276165 --- /dev/null +++ b/cli/tests/unit/structured_clone_test.ts @@ -0,0 +1,19 @@ +import { assert, assertEquals } from "./test_util.ts"; + +// Basic tests for the structured clone algorithm. Mainly tests TypeScript +// typings. Actual functionality is tested in WPT. + +Deno.test("self.structuredClone", async () => { + const arrayOriginal = ["hello world"]; + const channelOriginal = new MessageChannel(); + const [arrayCloned, portTransferred] = self + .structuredClone([arrayOriginal, channelOriginal.port2], { + transfer: [channelOriginal.port2], + }); + assert(arrayOriginal !== arrayCloned); // not the same identity + assertEquals(arrayCloned, arrayOriginal); // but same value + channelOriginal.port1.postMessage("1"); + await new Promise((resolve) => portTransferred.onmessage = () => resolve(1)); + channelOriginal.port1.close(); + portTransferred.close(); +}); -- cgit v1.2.3