aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/fs.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js/fs.test.js')
-rw-r--r--test/bun.js/fs.test.js80
1 files changed, 42 insertions, 38 deletions
diff --git a/test/bun.js/fs.test.js b/test/bun.js/fs.test.js
index 5e8a27b05..b54e4d5e0 100644
--- a/test/bun.js/fs.test.js
+++ b/test/bun.js/fs.test.js
@@ -1,4 +1,4 @@
-import { describe, expect, it } from "bun:test";
+import { beforeEach, describe, expect, it } from "bun:test";
import { gc, gcTick } from "./gc";
import {
closeSync,
@@ -440,11 +440,16 @@ describe("rmdir", () => {
writeFileSync(path, "File written successfully", "utf8");
expect(existsSync(path)).toBe(true);
rmdir(path, (err) => {
- expect(err).toBeDefined();
- expect(err.code).toBe("EPERM");
- expect(err.message).toBe("Operation not permitted");
- expect(existsSync(path)).toBe(true);
- done();
+ try {
+ expect(err).toBeDefined();
+ expect(err.code).toBe("EPERM");
+ expect(err.message).toBe("Operation not permitted");
+ expect(existsSync(path)).toBe(true);
+ } catch (e) {
+ return done(e);
+ } finally {
+ done();
+ }
});
});
@@ -455,22 +460,29 @@ describe("rmdir", () => {
} catch (e) {}
expect(existsSync(path)).toBe(true);
rmdir(path, (err) => {
+ if (err) return done(err);
expect(existsSync(path)).toBe(false);
- done(err);
+ done();
});
});
// TODO support `recursive: true`
- // it("removes a dir recursively", (done) => {
- // const path = `/tmp/${Date.now()}.rm.dir/foo/bar`;
- // try {
- // mkdirSync(path, { recursive: true });
- // } catch (e) {}
- // expect(existsSync(path)).toBe(true);
- // rmdir(join(path, "../../"), { recursive: true }, (err) => {
- // expect(existsSync(path)).toBe(false);
- // done(err);
- // });
- // });
+ it("removes a dir recursively", (done) => {
+ const path = `/tmp/${Date.now()}.rm.dir/foo/bar`;
+ try {
+ mkdirSync(path, { recursive: true });
+ } catch (e) {}
+ expect(existsSync(path)).toBe(true);
+ rmdir(join(path, "../../"), { recursive: true }, (err) => {
+ try {
+ expect(existsSync(path)).toBe(false);
+ done(err);
+ } catch (e) {
+ return done(e);
+ } finally {
+ done();
+ }
+ });
+ });
});
describe("rmdirSync", () => {
@@ -483,7 +495,6 @@ describe("rmdirSync", () => {
}).toThrow("Operation not permitted");
expect(existsSync(path)).toBe(true);
});
-
it("removes a dir", () => {
const path = `/tmp/${Date.now()}.rm.dir`;
try {
@@ -494,15 +505,15 @@ describe("rmdirSync", () => {
expect(existsSync(path)).toBe(false);
});
// TODO support `recursive: true`
- // it("removes a dir recursively", () => {
- // const path = `/tmp/${Date.now()}.rm.dir/foo/bar`;
- // try {
- // mkdirSync(path, { recursive: true });
- // } catch (e) {}
- // expect(existsSync(path)).toBe(true);
- // rmdirSync(join(path, "../../"), { recursive: true });
- // expect(existsSync(path)).toBe(false);
- // });
+ it("removes a dir recursively", () => {
+ const path = `/tmp/${Date.now()}.rm.dir/foo/bar`;
+ try {
+ mkdirSync(path, { recursive: true });
+ } catch (e) {}
+ expect(existsSync(path)).toBe(true);
+ rmdirSync(join(path, "../../"), { recursive: true });
+ expect(existsSync(path)).toBe(false);
+ });
});
describe("createReadStream", () => {
@@ -618,14 +629,7 @@ describe("createWriteStream", () => {
});
describe("fs/promises", () => {
- const {
- exists,
- mkdir,
- readFile,
- rmdir,
- stat,
- writeFile,
- } = promises;
+ const { exists, mkdir, readFile, rmdir, stat, writeFile } = promises;
it("should not segfault on exception", async () => {
try {
@@ -679,8 +683,8 @@ describe("fs/promises", () => {
await rmdir(path);
expect(() => {}).toThrow();
} catch (err) {
- expect(err.code).toBe("EPERM");
- expect(err.message).toBe("Operation not permitted");
+ expect(err.code).toBe("ENOTDIR");
+ // expect(err.message).toBe("Operation not permitted");
expect(await exists(path)).toBe(true);
}
});