diff options
author | Leo K <crowlkats@toaxl.com> | 2021-08-09 10:39:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-09 10:39:00 +0200 |
commit | 16ae4a0d5799c9a4ed776f32929f73b1063ae4e8 (patch) | |
tree | ed5d0def5e0acbf67f2c64ac4664b1af46f4c468 /cli/tests | |
parent | 02c74fb70970fcadb7d1e6dab857eeb2cea20e09 (diff) |
feat(extensions/web): add structuredClone function (#11572)
Co-authored-by: Luca Casonato <hello@lcas.dev>
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/unit/structured_clone_test.ts | 19 |
1 files changed, 19 insertions, 0 deletions
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(); +}); |