aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bun.js/node/types.zig2
-rw-r--r--test/js/node/path/path.test.js39
2 files changed, 40 insertions, 1 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig
index bc2144095..23d693d69 100644
--- a/src/bun.js/node/types.zig
+++ b/src/bun.js/node/types.zig
@@ -1782,7 +1782,7 @@ pub const Path = struct {
else
@This().dirnamePosix(base_slice);
- return JSC.ZigString.init(out).toValueGC(globalThis);
+ return JSC.ZigString.init(out).withEncoding().toValueGC(globalThis);
}
pub fn extname(globalThis: *JSC.JSGlobalObject, _: bool, args_ptr: [*]JSC.JSValue, args_len: u16) callconv(.C) JSC.JSValue {
if (comptime is_bindgen) return JSC.JSValue.jsUndefined();
diff --git a/test/js/node/path/path.test.js b/test/js/node/path/path.test.js
index deab41796..8f32bdb2c 100644
--- a/test/js/node/path/path.test.js
+++ b/test/js/node/path/path.test.js
@@ -66,6 +66,20 @@ describe("dirname", () => {
expect(path.posix.dirname("\\a")).toBe(".");
expect(path.posix.dirname("a")).toBe(".");
expect(path.posix.dirname("/a/b//c")).toBe("/a/b/");
+ expect(path.posix.dirname("/文檔")).toBe("/");
+ expect(path.posix.dirname("/文檔/")).toBe("/");
+ expect(path.posix.dirname("/文檔/新建文件夾")).toBe("/文檔");
+ expect(path.posix.dirname("/文檔/新建文件夾/")).toBe("/文檔");
+ expect(path.posix.dirname("//新建文件夾")).toBe("//");
+ expect(path.posix.dirname("///新建文件夾")).toBe("//");
+ expect(path.posix.dirname("////新建文件夾")).toBe("///");
+ expect(path.posix.dirname("/////新建文件夾")).toBe("////");
+ expect(path.posix.dirname("新建文件夾")).toBe(".");
+ expect(path.posix.dirname("新建文件夾/")).toBe(".");
+ expect(path.posix.dirname("文檔/新建文件夾")).toBe("文檔");
+ expect(path.posix.dirname("文檔/")).toBe(".");
+ expect(path.posix.dirname("文檔///新建文件夾")).toBe("文檔//");
+ expect(path.posix.dirname("文檔//新建文件夾")).toBe("文檔/");
});
it("path.win32.dirname", () => {
expect(path.win32.dirname("c:\\")).toBe("c:\\");
@@ -105,6 +119,31 @@ describe("dirname", () => {
expect(path.win32.dirname("/")).toBe("/");
expect(path.win32.dirname("////")).toBe("/");
expect(path.win32.dirname("foo")).toBe(".");
+ expect(path.win32.dirname("c:\\")).toBe("c:\\");
+ expect(path.win32.dirname("c:\\文檔")).toBe("c:\\");
+ expect(path.win32.dirname("c:\\文檔\\")).toBe("c:\\");
+ expect(path.win32.dirname("c:\\文檔\\新建文件夾")).toBe("c:\\文檔");
+ expect(path.win32.dirname("c:\\文檔\\新建文件夾\\")).toBe("c:\\文檔");
+ expect(path.win32.dirname("c:\\文檔\\新建文件夾\\baz")).toBe("c:\\文檔\\新建文件夾");
+ expect(path.win32.dirname("c:\\文檔 1\\新建文件夾")).toBe("c:\\文檔 1");
+ expect(path.win32.dirname("c:\\\\文檔")).toBe("c:\\");
+ expect(path.win32.dirname("\\文檔")).toBe("\\");
+ expect(path.win32.dirname("\\文檔\\")).toBe("\\");
+ expect(path.win32.dirname("\\文檔\\新建文件夾")).toBe("\\文檔");
+ expect(path.win32.dirname("\\文檔\\新建文件夾\\")).toBe("\\文檔");
+ expect(path.win32.dirname("\\文檔\\新建文件夾\\baz")).toBe("\\文檔\\新建文件夾");
+ expect(path.win32.dirname("\\文檔 1\\baz")).toBe("\\文檔 1");
+ expect(path.win32.dirname("c:")).toBe("c:");
+ expect(path.win32.dirname("c:文檔")).toBe("c:");
+ expect(path.win32.dirname("c:文檔\\")).toBe("c:");
+ expect(path.win32.dirname("c:文檔\\新建文件夾")).toBe("c:文檔");
+ expect(path.win32.dirname("c:文檔\\新建文件夾\\")).toBe("c:文檔");
+ expect(path.win32.dirname("c:文檔\\新建文件夾\\baz")).toBe("c:文檔\\新建文件夾");
+ expect(path.win32.dirname("c:文檔 1\\baz")).toBe("c:文檔 1");
+ expect(path.win32.dirname("/文檔/新建文件夾/")).toBe("/文檔");
+ expect(path.win32.dirname("/文檔/新建文件夾")).toBe("/文檔");
+ expect(path.win32.dirname("/文檔")).toBe("/");
+ expect(path.win32.dirname("新建文件夾")).toBe(".");
});
});