diff options
Diffstat (limited to 'test/bun.js/node-stream.test.js')
-rw-r--r-- | test/bun.js/node-stream.test.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/bun.js/node-stream.test.js b/test/bun.js/node-stream.test.js new file mode 100644 index 000000000..8024ab562 --- /dev/null +++ b/test/bun.js/node-stream.test.js @@ -0,0 +1,47 @@ +import { expect, describe, it } from "bun:test"; +import { Duplex, Transform, PassThrough } from "node:stream"; + +describe("Duplex", () => { + it("should allow subclasses to be derived via .call() on class", () => { + function Subclass(opts) { + if (!(this instanceof Subclass)) return new Subclass(opts); + Duplex.call(this, opts); + } + + Object.setPrototypeOf(Subclass.prototype, Duplex.prototype); + Object.setPrototypeOf(Subclass, Duplex); + + const subclass = new Subclass(); + expect(subclass instanceof Duplex).toBe(true); + }); +}); + +describe("Transform", () => { + it("should allow subclasses to be derived via .call() on class", () => { + function Subclass(opts) { + if (!(this instanceof Subclass)) return new Subclass(opts); + Transform.call(this, opts); + } + + Object.setPrototypeOf(Subclass.prototype, Transform.prototype); + Object.setPrototypeOf(Subclass, Transform); + + const subclass = new Subclass(); + expect(subclass instanceof Transform).toBe(true); + }); +}); + +describe("PassThrough", () => { + it("should allow subclasses to be derived via .call() on class", () => { + function Subclass(opts) { + if (!(this instanceof Subclass)) return new Subclass(opts); + PassThrough.call(this, opts); + } + + Object.setPrototypeOf(Subclass.prototype, PassThrough.prototype); + Object.setPrototypeOf(Subclass, PassThrough); + + const subclass = new Subclass(); + expect(subclass instanceof PassThrough).toBe(true); + }); +}); |