aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/bun.js/fs.test.js43
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);
+ });
+ });
+ });
+});