diff options
-rw-r--r-- | test/bun.js/fs.test.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/bun.js/fs.test.js b/test/bun.js/fs.test.js index f2f3e6519..e2d305f01 100644 --- a/test/bun.js/fs.test.js +++ b/test/bun.js/fs.test.js @@ -15,6 +15,7 @@ import { lstatSync, copyFileSync, rmSync, + createReadStream, } from "node:fs"; import { join } from "node:path"; @@ -419,3 +420,45 @@ describe("rm", () => { expect(existsSync(path)).toBe(false); }); }); + +describe("createReadStream", () => { + it("works (1 chunk)", async () => { + return await new Promise((resolve, reject) => { + var stream = createReadStream(import.meta.dir + "/readFileSync.txt", {}); + + stream.on("error", (e) => { + reject(e); + }); + + stream.on("data", (chunk) => { + expect(chunk instanceof Buffer).toBe(true); + expect(chunk.length).toBe("File read successfully".length); + expect(chunk.toString()).toBe("File read successfully"); + }); + + stream.on("close", () => { + resolve(true); + }); + }); + }); + + it("works (22 chunk)", async () => { + var stream = createReadStream(import.meta.dir + "/readFileSync.txt", { + highWaterMark: 1, + }); + + var data = readFileSync(import.meta.dir + "/readFileSync.txt", "utf8"); + var i = 0; + return await new Promise((resolve) => { + stream.on("data", (chunk) => { + expect(chunk instanceof Buffer).toBe(true); + expect(chunk.length).toBe(1); + expect(chunk.toString()).toBe(data[i++]); + }); + + stream.on("end", () => { + resolve(true); + }); + }); + }); +}); |