import { describe, it, expect } from "vitest"; import { existsSync } from "node:fs"; import { createFixture } from "./fixture.ts"; describe("createFixture", () => { it("creates files on disk from inline tree", async () => { const fixture = await createFixture({ "hello.txt": "hello world", }); expect(await fixture.text("hello.txt")).toBe("hello world"); }); it("creates nested directories from slash-separated keys", async () => { const fixture = await createFixture({ "src/index.ts": "export const x = 1", "src/utils/helpers.ts": "export function help() {}", }); expect(await fixture.isFile("src/index.ts")).toBe(true); expect(await fixture.isFile("src/utils/helpers.ts")).toBe(true); }); it("resolve returns absolute path within fixture root", async () => { const fixture = await createFixture({ "a.txt": "" }); expect(fixture.resolve("a.txt").toString()).toContain(fixture.root.toString()); }); it("text reads the actual file", async () => { const fixture = await createFixture({ "a.txt": "Empty" }); expect(await fixture.text("a.txt")).toEqual("Empty"); await fixture.write("a.txt", "Hello world!"); expect(await fixture.text("a.txt")).toEqual("Hello world!"); }); it("cleanup removes the temp directory", async () => { const fixture = await createFixture({ "a.txt": "" }); const path = fixture.root; expect(await fixture.isDirectory(".")).toBe(true); await fixture.cleanup(); expect(existsSync(path)).toBe(false); }); });