deno.land / x / msgpack_javascript@v3.0.0-beta2 / test / decode-max-length.test.ts

decode-max-length.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
import assert from "assert";import { encode, decode, decodeAsync } from "../src";import type { DecoderOptions } from "../src";
describe("decode with max${Type}Length specified", () => { async function* createStream<T>(input: T) { yield input; }
context("maxStrLength", () => { const input = encode("foo"); const options = { maxStrLength: 1 } satisfies DecoderOptions;
it("throws errors (synchronous)", () => { assert.throws(() => { decode(input, options); }, /max length exceeded/i); });
it("throws errors (asynchronous)", async () => { await assert.rejects(async () => { await decodeAsync(createStream(input), options); }, /max length exceeded/i); }); });
context("maxBinLength", () => { const input = encode(Uint8Array.from([1, 2, 3])); const options = { maxBinLength: 1 } satisfies DecoderOptions;
it("throws errors (synchronous)", () => { assert.throws(() => { decode(input, options); }, /max length exceeded/i); });
it("throws errors (asynchronous)", async () => { await assert.rejects(async () => { await decodeAsync(createStream(input), options); }, /max length exceeded/i); }); });
context("maxArrayLength", () => { const input = encode([1, 2, 3]); const options = { maxArrayLength: 1 } satisfies DecoderOptions;
it("throws errors (synchronous)", () => { assert.throws(() => { decode(input, options); }, /max length exceeded/i); });
it("throws errors (asynchronous)", async () => { await assert.rejects(async () => { await decodeAsync(createStream(input), options); }, /max length exceeded/i); }); });
context("maxMapLength", () => { const input = encode({ foo: 1, bar: 1, baz: 3 }); const options = { maxMapLength: 1 } satisfies DecoderOptions;
it("throws errors (synchronous)", () => { assert.throws(() => { decode(input, options); }, /max length exceeded/i); });
it("throws errors (asynchronous)", async () => { await assert.rejects(async () => { await decodeAsync(createStream(input), options); }, /max length exceeded/i); }); });
context("maxExtType", () => { const input = encode(new Date()); // timextamp ext requires at least 4 bytes. const options = { maxExtLength: 1 } satisfies DecoderOptions;
it("throws errors (synchronous)", () => { assert.throws(() => { decode(input, options); }, /max length exceeded/i); });
it("throws errors (asynchronous)", async () => { await assert.rejects(async () => { await decodeAsync(createStream(input), options); }, /max length exceeded/i); }); });});
msgpack_javascript

Version Info

Tagged at
a year ago