aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/fs.test.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-24 00:14:06 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-24 00:14:59 -0800
commit2c31beda750e40a0d2af0362e77f4b0e46526473 (patch)
treee4209233495052aaa44740aa2b9e1e54d23e1aa3 /test/bun.js/fs.test.js
parentcd684fdad0c973809e3290c5bf203dc337bcf744 (diff)
downloadbun-2c31beda750e40a0d2af0362e77f4b0e46526473.tar.gz
bun-2c31beda750e40a0d2af0362e77f4b0e46526473.tar.zst
bun-2c31beda750e40a0d2af0362e77f4b0e46526473.zip
Fixes #1887
Diffstat (limited to '')
-rw-r--r--test/bun.js/fs.test.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/bun.js/fs.test.js b/test/bun.js/fs.test.js
index b54e4d5e0..865f6f16a 100644
--- a/test/bun.js/fs.test.js
+++ b/test/bun.js/fs.test.js
@@ -20,6 +20,8 @@ import {
createReadStream,
createWriteStream,
promises,
+ unlinkSync,
+ mkdtempSync,
} from "node:fs";
import { join } from "node:path";
@@ -113,6 +115,51 @@ it("readdirSync on import.meta.dir", () => {
expect(match).toBe(true);
});
+// https://github.com/oven-sh/bun/issues/1887
+it("mkdtempSync, readdirSync, rmdirSync and unlinkSync with non-ascii", () => {
+ const tempdir = mkdtempSync(`/tmp/emoji-fruit-🍇 🍈 🍉 🍊 🍋`);
+ expect(existsSync(tempdir)).toBe(true);
+ writeFileSync(tempdir + "/non-ascii-👍.txt", "hello");
+ const dirs = readdirSync(tempdir);
+ expect(dirs.length > 0).toBe(true);
+ var match = false;
+ gc(true);
+ for (let i = 0; i < dirs.length; i++) {
+ if (dirs[i].endsWith("non-ascii-👍.txt")) {
+ match = true;
+ break;
+ }
+ }
+ gc(true);
+ expect(match).toBe(true);
+ unlinkSync(tempdir + "/non-ascii-👍.txt");
+ expect(existsSync(tempdir + "/non-ascii-👍.txt")).toBe(false);
+ rmdirSync(tempdir);
+ expect(existsSync(tempdir)).toBe(false);
+});
+
+it("mkdtempSync() empty name", () => {
+ const tempdir = mkdtempSync();
+ expect(existsSync(tempdir)).toBe(true);
+ writeFileSync(tempdir + "/non-ascii-👍.txt", "hello");
+ const dirs = readdirSync(tempdir);
+ expect(dirs.length > 0).toBe(true);
+ var match = false;
+ gc(true);
+ for (let i = 0; i < dirs.length; i++) {
+ if (dirs[i].endsWith("non-ascii-👍.txt")) {
+ match = true;
+ break;
+ }
+ }
+ gc(true);
+ expect(match).toBe(true);
+ unlinkSync(tempdir + "/non-ascii-👍.txt");
+ expect(existsSync(tempdir + "/non-ascii-👍.txt")).toBe(false);
+ rmdirSync(tempdir);
+ expect(existsSync(tempdir)).toBe(false);
+});
+
it("readdirSync on import.meta.dir with trailing slash", () => {
const dirs = readdirSync(import.meta.dir + "/");
expect(dirs.length > 0).toBe(true);