Skip to content

Commit 2b66bb7

Browse files
committed
clarify decodeMulti*() can decode empty inputs
amend 32654ee
1 parent 32654ee commit 2b66bb7

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

test/edge-cases.test.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// kind of hand-written fuzzing data
22
// any errors should not break Encoder/Decoder instance states
33
import assert from "assert";
4-
import { encode, decodeAsync, decode, Encoder, Decoder } from "../src";
4+
import { encode, decodeAsync, decode, Encoder, Decoder, decodeMulti, decodeMultiStream } from "../src";
55
import { DataViewIndexOutOfBoundsError } from "../src/Decoder";
66

77
function testEncoder(encoder: Encoder): void {
@@ -155,6 +155,10 @@ describe("edge cases", () => {
155155
}, RangeError);
156156
});
157157

158+
it("decodes an empty array with decodeMulti()", () => {
159+
assert.deepStrictEqual([...decodeMulti([])], []);
160+
});
161+
158162
it("throws RangeError (asynchronous)", async () => {
159163
const createStream = async function* () {
160164
yield [];
@@ -164,5 +168,17 @@ describe("edge cases", () => {
164168
await decodeAsync(createStream());
165169
}, RangeError);
166170
});
171+
172+
it("decodes an empty array with decodeMultiStream()", async () => {
173+
const createStream = async function* () {
174+
yield [];
175+
};
176+
177+
const results = [];
178+
for await (const item of decodeMultiStream(createStream())) {
179+
results.push(item);
180+
}
181+
assert.deepStrictEqual(results, []);
182+
});
167183
});
168184
});

0 commit comments

Comments
 (0)