deno.land / x / msgpack_javascript@v3.0.0-beta2 / test / reuse-instances.test.ts

reuse-instances.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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
import { deepStrictEqual } from "assert";import { Encoder, Decoder, decode } from "@msgpack/msgpack";
const createStream = async function* (...args: any) { for (const item of args) { yield item; }};
const N = 10;
describe("shared instances", () => { context("encode() and decodeSync()", () => { it("runs multiple times", () => { const encoder = new Encoder(); const decoder = new Decoder();
const object = { nil: null, integer: 1, float: Math.PI, string: "Hello, world!", binary: Uint8Array.from([1, 2, 3]), array: [10, 20, 30], map: { foo: "bar" }, timestampExt: new Date(), };
for (let i = 0; i < N; i++) { const encoded: Uint8Array = encoder.encode(object); deepStrictEqual(decoder.decode(encoded), object, `#${i}`); } }); });
context("encode() and decodeAsync()", () => { it("runs multiple times", async () => { const encoder = new Encoder(); const decoder = new Decoder();
const object = { nil: null, integer: 1, float: Math.PI, string: "Hello, world!", binary: Uint8Array.from([1, 2, 3]), array: [10, 20, 30], map: { foo: "bar" }, timestampExt: new Date(), };
for (let i = 0; i < N; i++) { const encoded: Uint8Array = encoder.encode(object); deepStrictEqual(await decoder.decodeAsync(createStream(encoded)), object, `#${i}`); } }); });
context("encode() and decodeStream()", () => { it("runs multiple times", async () => { const encoder = new Encoder(); const decoder = new Decoder();
const object = { nil: null, integer: 1, float: Math.PI, string: "Hello, world!", binary: Uint8Array.from([1, 2, 3]), array: [10, 20, 30], map: { foo: "bar" }, timestampExt: new Date(), };
for (let i = 0; i < N; i++) { const encoded: Uint8Array = encoder.encode(object); const a: Array<any> = []; for await (const item of decoder.decodeStream(createStream(encoded))) { a.push(item); } deepStrictEqual(a, [object], `#${i}`); } }); });
context("encode() and decodeArrayStream()", () => { it("runs multiple times", async () => { const encoder = new Encoder(); const decoder = new Decoder();
const object = { nil: null, integer: 1, float: Math.PI, string: "Hello, world!", binary: Uint8Array.from([1, 2, 3]), array: [10, 20, 30], map: { foo: "bar" }, timestampExt: new Date(), };
for (let i = 0; i < N; i++) { const encoded: Uint8Array = encoder.encode([object]); const a: Array<any> = []; for await (const item of decoder.decodeStream(createStream(encoded))) { a.push(item); } deepStrictEqual(a, [[object]], `#${i}`); } });
context("regression #212", () => { it("runs multiple times", () => { const encoder = new Encoder(); const decoder = new Decoder();
const data1 = { isCommunication: false, isWarning: false, alarmId: "619f65a2774abf00568b7210", intervalStart: "2022-05-20T12:00:00.000Z", intervalStop: "2022-05-20T13:00:00.000Z", triggeredAt: "2022-05-20T13:00:00.000Z", component: "someComponent", _id: "6287920245a582301475627d", };
const data2 = { foo: "bar", };
const arr = [data1, data2]; const enc = arr.map((x) => [x, encoder.encode(x)] as const);
enc.forEach(([orig, acc]) => { const des = decoder.decode(acc); deepStrictEqual(des, orig); }); }); });
context("Encoder#encodeSharedRef()", () => { it("returns the shared reference", () => { const encoder = new Encoder();
const a = encoder.encodeSharedRef(true); const b = encoder.encodeSharedRef(false);
deepStrictEqual(decode(a), decode(b)); // yes, this is the expected behavior deepStrictEqual(a.buffer, b.buffer); }); }); });});
msgpack_javascript

Version Info

Tagged at
a year ago