aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js
diff options
context:
space:
mode:
authorGravatar Alex Lam S.L <alexlamsl@gmail.com> 2023-01-06 05:43:33 +0200
committerGravatar GitHub <noreply@github.com> 2023-01-05 19:43:33 -0800
commite2ed31b7e79d1cb4fca492de3be0324afc9fd3a1 (patch)
tree7cf9c599b01cc3c5703892aef03785fa98ca19a2 /test/bun.js
parenta7d9f161079292dfb757fa412767754f26f9f4c4 (diff)
downloadbun-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.ts38
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);
+});