deno.land / std@0.166.0 / encoding / json / _stringify_test.ts

_stringify_test.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
import { assertEquals, assertRejects } from "../../testing/asserts.ts";import { readableStreamFromIterable } from "../../streams/conversion.ts";import { JsonStringifyStream, StringifyStreamOptions } from "./_stringify.ts";
async function assertValidStringify( transformer: typeof JsonStringifyStream, chunks: unknown[], expect: string[], options?: StringifyStreamOptions,) { const r = readableStreamFromIterable(chunks); const res = []; for await (const data of r.pipeThrough(new transformer(options))) { res.push(data); } assertEquals(res, expect);}
async function assertInvalidStringify( transformer: typeof JsonStringifyStream, chunks: unknown[], options: StringifyStreamOptions, // deno-lint-ignore no-explicit-any ErrorClass: new (...args: any[]) => Error, msgIncludes: string | undefined,) { const r = readableStreamFromIterable(chunks); await assertRejects( async () => { for await (const _ of r.pipeThrough(new transformer(options))); }, ErrorClass, msgIncludes, );}
Deno.test({ name: "[encoding/json/stream] JsonStringifyStream", async fn() { await assertValidStringify( JsonStringifyStream, [{ foo: "bar" }, { foo: "bar" }], ['{"foo":"bar"}\n', '{"foo":"bar"}\n'], ); },});
Deno.test({ name: "[encoding/json/stream] JsonStringifyStream: throws", async fn() { const cyclic: Record<string, unknown> = {}; cyclic.cyclic = cyclic; await assertInvalidStringify( JsonStringifyStream, [cyclic], {}, TypeError, "Converting circular structure to JSON", ); },});
Deno.test({ name: "[encoding/json/stream] JsonStringifyStream: prefix and suffix", async fn() { await assertValidStringify( JsonStringifyStream, [{ foo: "bar" }, { foo: "bar" }], [ '[[prefix]]{"foo":"bar"}[[suffix]]', '[[prefix]]{"foo":"bar"}[[suffix]]', ], { prefix: "[[prefix]]", suffix: "[[suffix]]" }, ); },});
std

Version Info

Tagged at
a year ago