diff options
author | 2023-01-24 00:14:06 -0800 | |
---|---|---|
committer | 2023-01-24 00:14:59 -0800 | |
commit | 2c31beda750e40a0d2af0362e77f4b0e46526473 (patch) | |
tree | e4209233495052aaa44740aa2b9e1e54d23e1aa3 /test/bun.js/fs.test.js | |
parent | cd684fdad0c973809e3290c5bf203dc337bcf744 (diff) | |
download | bun-2c31beda750e40a0d2af0362e77f4b0e46526473.tar.gz bun-2c31beda750e40a0d2af0362e77f4b0e46526473.tar.zst bun-2c31beda750e40a0d2af0362e77f4b0e46526473.zip |
Fixes #1887
Diffstat (limited to '')
-rw-r--r-- | test/bun.js/fs.test.js | 47 |
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); |