From 01fa48d505f2cc1fb4ac62eba0967fca8d965fb1 Mon Sep 17 00:00:00 2001 From: Ben Grant Date: Thu, 17 Jul 2025 13:56:32 -0700 Subject: [PATCH] wip --- src/bun.js/node/node_fs.zig | 1 + test/js/node/fs/fs.test.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index bebe7a08f9..40eb6d17e3 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -5678,6 +5678,7 @@ pub const NodeFS = struct { error.InvalidUtf8 => .INVAL, error.InvalidWtf8 => .INVAL, error.BadPathName => .INVAL, + error.IsDir => .ISDIR, error.FileNotFound => brk: { if (args.force) { return Maybe(Return.Rm).success; diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts index c56483180a..d64afdc35e 100644 --- a/test/js/node/fs/fs.test.ts +++ b/test/js/node/fs/fs.test.ts @@ -1726,6 +1726,22 @@ describe("rm", () => { expect(existsSync(path)).toBe(false); }); + it.only("returns the right error when removing a dir without recursive", () => { + const path = `${tmpdir()}/${Date.now()}.rm.dir`; + try { + mkdirSync(path); + } catch (e) {} + expect(existsSync(path)).toBe(true); + let error; + try { + rmSync(path, { force: true }); + } catch (e) { + error = e; + } + expect(error).toBeInstanceOf(Error); + expect(error.errno).toBe(21); + }); + it("removes a dir recursively", () => { const path = `${tmpdir()}/${Date.now()}.rm.dir/foo/bar`; try {