diff options
author | 2023-01-06 05:43:33 +0200 | |
---|---|---|
committer | 2023-01-05 19:43:33 -0800 | |
commit | e2ed31b7e79d1cb4fca492de3be0324afc9fd3a1 (patch) | |
tree | 7cf9c599b01cc3c5703892aef03785fa98ca19a2 /test/bun.js | |
parent | a7d9f161079292dfb757fa412767754f26f9f4c4 (diff) | |
download | bun-e2ed31b7e79d1cb4fca492de3be0324afc9fd3a1.tar.gz bun-e2ed31b7e79d1cb4fca492de3be0324afc9fd3a1.tar.zst bun-e2ed31b7e79d1cb4fca492de3be0324afc9fd3a1.zip |
lazily create buffer/string slices (#1735)
Diffstat (limited to 'test/bun.js')
-rw-r--r-- | test/bun.js/bufferlist.test.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/bun.js/bufferlist.test.ts b/test/bun.js/bufferlist.test.ts index e344d49b4..3aa20845b 100644 --- a/test/bun.js/bufferlist.test.ts +++ b/test/bun.js/bufferlist.test.ts @@ -185,3 +185,41 @@ it("should work with .unshift()", () => { expect(list.shift()).toBe(item2); expect(list.shift()).toBeUndefined(); }); + +it("should work with partial .consume() followed by .first()", () => { + const list = new Readable().readableBuffer; + expect(list.length).toBe(0); + expect(list.push("foo")).toBeUndefined(); + expect(list.push("bar")).toBeUndefined(); + expect(list.length).toBe(2); + expect(list.consume(4, true)).toEqual("foob"); + expect(list.length).toBe(1); + expect(list.first()).toEqual("ar"); + expect(list.length).toBe(1); +}); + +it("should work with partial .consume() followed by .shift()", () => { + const list = new Readable().readableBuffer; + expect(list.length).toBe(0); + expect(list.push(makeUint8Array("foo"))).toBeUndefined(); + expect(list.push(makeUint8Array("bar"))).toBeUndefined(); + expect(list.length).toBe(2); + expect(list.consume(4, false)).toEqual(makeUint8Array("foob")); + expect(list.length).toBe(1); + expect(list.shift()).toEqual(makeUint8Array("ar")); + expect(list.length).toBe(0); +}); + +it("should work with partial .consume() followed by .unshift()", () => { + const list = new Readable().readableBuffer; + expect(list.length).toBe(0); + expect(list.push(makeUint8Array("foo"))).toBeUndefined(); + expect(list.push(makeUint8Array("bar"))).toBeUndefined(); + expect(list.length).toBe(2); + expect(list.consume(4, false)).toEqual(makeUint8Array("foob")); + expect(list.length).toBe(1); + expect(list.unshift(makeUint8Array("baz"))).toBeUndefined(); + expect(list.length).toBe(2); + expect(list.consume(5, false)).toEqual(makeUint8Array("bazar")); + expect(list.length).toBe(0); +}); |