diff options
Diffstat (limited to 'test/bun.js/arraybuffersink.test.ts')
-rw-r--r-- | test/bun.js/arraybuffersink.test.ts | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/test/bun.js/arraybuffersink.test.ts b/test/bun.js/arraybuffersink.test.ts new file mode 100644 index 000000000..a658556a5 --- /dev/null +++ b/test/bun.js/arraybuffersink.test.ts @@ -0,0 +1,82 @@ +import { ArrayBufferSink } from "bun"; +import { describe, expect, it } from "bun:test"; + +describe("ArrayBufferSink", () => { + const fixtures = [ + [ + ["abcdefghijklmnopqrstuvwxyz"], + new TextEncoder().encode("abcdefghijklmnopqrstuvwxyz"), + "abcdefghijklmnopqrstuvwxyz", + ], + [ + ["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"], + new TextEncoder().encode( + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + ), + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + ], + [ + ["😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌"], + new TextEncoder().encode( + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌" + ), + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌", + ], + [ + [ + "abcdefghijklmnopqrstuvwxyz", + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌", + ], + new TextEncoder().encode( + "abcdefghijklmnopqrstuvwxyz" + + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌" + ), + "abcdefghijklmnopqrstuvwxyz" + + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌", + ], + [ + [ + "abcdefghijklmnopqrstuvwxyz", + "😋", + " Get Emoji — All Emojis", + " to ✂️ Copy and 📋 Paste 👌", + ], + new TextEncoder().encode( + "abcdefghijklmnopqrstuvwxyz" + + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌" + ), + "(rope) " + + "abcdefghijklmnopqrstuvwxyz" + + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌", + ], + [ + [ + new TextEncoder().encode("abcdefghijklmnopqrstuvwxyz"), + "😋", + " Get Emoji — All Emojis", + " to ✂️ Copy and 📋 Paste 👌", + ], + new TextEncoder().encode( + "abcdefghijklmnopqrstuvwxyz" + + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌" + ), + "(array) " + + "abcdefghijklmnopqrstuvwxyz" + + "😋 Get Emoji — All Emojis to ✂️ Copy and 📋 Paste 👌", + ], + ]; + + for (const [input, expected, label] of fixtures) { + it(`${JSON.stringify(label)}`, () => { + const sink = new ArrayBufferSink(); + for (let i = 0; i < input.length; i++) { + sink.write(input[i]); + } + const output = new Uint8Array(sink.end()); + for (let i = 0; i < expected.length; i++) { + expect(output[i]).toBe(expected[i]); + } + expect(output.byteLength).toBe(expected.byteLength); + }); + } +}); |