mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
45 lines
1.5 KiB
TypeScript
45 lines
1.5 KiB
TypeScript
import { expect, test } from "bun:test";
|
|
import { mkdirSync, writeFileSync } from "fs";
|
|
import { mkdir } from "fs/promises";
|
|
import { tmpdirSync } from "harness";
|
|
import { join, toNamespacedPath } from "path";
|
|
|
|
test("fs.mkdir recursive should not error on existing", async () => {
|
|
const testDir = tmpdirSync();
|
|
|
|
const dir1 = join(testDir, "test123");
|
|
expect(mkdirSync(dir1, { recursive: true })).toBe(toNamespacedPath(dir1));
|
|
expect(mkdirSync(dir1, { recursive: true })).toBeUndefined();
|
|
expect(() => {
|
|
mkdirSync(dir1);
|
|
}).toThrow("EEXIST: file already exists");
|
|
|
|
// relative
|
|
expect(() => {
|
|
mkdirSync("123test", { recursive: true });
|
|
mkdirSync("123test", { recursive: true });
|
|
|
|
mkdirSync("123test/456test", { recursive: true });
|
|
mkdirSync("123test/456test", { recursive: true });
|
|
}).not.toThrow();
|
|
|
|
const dir2 = join(testDir, "test456");
|
|
expect(await mkdir(dir2)).toBeUndefined();
|
|
expect(await mkdir(dir2, { recursive: true })).toBeUndefined();
|
|
|
|
// nested
|
|
const dir3 = join(testDir, "test789", "nested");
|
|
expect(mkdirSync(dir3, { recursive: true })).toBe(toNamespacedPath(join(testDir, "test789")));
|
|
expect(mkdirSync(dir3, { recursive: true })).toBeUndefined();
|
|
|
|
// file
|
|
const file = join(testDir, "test789", "file.txt");
|
|
writeFileSync(file, "hi");
|
|
expect(() => {
|
|
mkdirSync(file, { recursive: true });
|
|
}).toThrow("EEXIST: file already exists");
|
|
expect(async () => {
|
|
await mkdir(file, { recursive: true });
|
|
}).toThrow("EEXIST: file already exists");
|
|
});
|