[READ-ONLY] Mirror of https://github.com/bombshell-dev/tools. Internal CLI to standardize tooling across all Bombshell projects
0

Configure Feed

Select the types of activity you want to include in your feed.

[ci] format

authored by

Nate Moore and committed by
bombshell-bot
(Mar 25, 2026, 1:11 AM UTC) 2d44c699 9d2c754a

+56 -56
+32 -32
src/test-utils.test.ts
··· 4 4 import { createFixture } from "./test-utils.ts"; 5 5 6 6 describe("createFixture", () => { 7 - it("creates files on disk from inline tree", async () => { 8 - const fixture = await createFixture({ 9 - "hello.txt": "hello world", 10 - }); 11 - const content = await readFile(fixture.resolve("hello.txt"), "utf8"); 12 - expect(content).toBe("hello world"); 13 - }); 7 + it("creates files on disk from inline tree", async () => { 8 + const fixture = await createFixture({ 9 + "hello.txt": "hello world", 10 + }); 11 + const content = await readFile(fixture.resolve("hello.txt"), "utf8"); 12 + expect(content).toBe("hello world"); 13 + }); 14 14 15 - it("creates nested directories from slash-separated keys", async () => { 16 - const fixture = await createFixture({ 17 - "src/index.ts": "export const x = 1", 18 - "src/utils/helpers.ts": "export function help() {}", 19 - }); 20 - expect(existsSync(fixture.resolve("src/index.ts"))).toBe(true); 21 - expect(existsSync(fixture.resolve("src/utils/helpers.ts"))).toBe(true); 22 - }); 15 + it("creates nested directories from slash-separated keys", async () => { 16 + const fixture = await createFixture({ 17 + "src/index.ts": "export const x = 1", 18 + "src/utils/helpers.ts": "export function help() {}", 19 + }); 20 + expect(existsSync(fixture.resolve("src/index.ts"))).toBe(true); 21 + expect(existsSync(fixture.resolve("src/utils/helpers.ts"))).toBe(true); 22 + }); 23 23 24 - it("resolve returns absolute path within fixture root", async () => { 25 - const fixture = await createFixture({ "a.txt": "" }); 26 - expect(fixture.resolve("a.txt").toString()).toContain(fixture.root.toString()); 27 - }); 24 + it("resolve returns absolute path within fixture root", async () => { 25 + const fixture = await createFixture({ "a.txt": "" }); 26 + expect(fixture.resolve("a.txt").toString()).toContain(fixture.root.toString()); 27 + }); 28 28 29 - it("readFile reads the actual file", async () => { 30 - const fixture = await createFixture({ "a.txt": "Empty" }); 31 - expect(await fixture.readFile("a.txt")).toEqual("Empty"); 32 - await writeFile(fixture.resolve("a.txt"), "Hello world!", { encoding: "utf-8" }); 33 - expect(await fixture.readFile("a.txt")).toEqual("Hello world!"); 34 - }); 29 + it("readFile reads the actual file", async () => { 30 + const fixture = await createFixture({ "a.txt": "Empty" }); 31 + expect(await fixture.readFile("a.txt")).toEqual("Empty"); 32 + await writeFile(fixture.resolve("a.txt"), "Hello world!", { encoding: "utf-8" }); 33 + expect(await fixture.readFile("a.txt")).toEqual("Hello world!"); 34 + }); 35 35 36 - it("cleanup removes the temp directory", async () => { 37 - const fixture = await createFixture({ "a.txt": "" }); 38 - const path = fixture.root; 39 - expect(existsSync(path)).toBe(true); 40 - await fixture.cleanup(); 41 - expect(existsSync(path)).toBe(false); 42 - }); 36 + it("cleanup removes the temp directory", async () => { 37 + const fixture = await createFixture({ "a.txt": "" }); 38 + const path = fixture.root; 39 + expect(existsSync(path)).toBe(true); 40 + await fixture.cleanup(); 41 + expect(existsSync(path)).toBe(false); 42 + }); 43 43 });
+24 -24
src/test-utils.ts
··· 6 6 import { onTestFinished } from "vitest"; 7 7 8 8 export interface Fixture { 9 - root: URL; 10 - resolve: (...segments: string[]) => URL; 11 - readFile: (file: PathLike) => Promise<string>; 12 - cleanup: () => Promise<void>; 9 + root: URL; 10 + resolve: (...segments: string[]) => URL; 11 + readFile: (file: PathLike) => Promise<string>; 12 + cleanup: () => Promise<void>; 13 13 } 14 14 15 15 export async function createFixture(files: Record<string, string>): Promise<Fixture> { 16 - const root = new URL(`bsh-`, `file://${tmpdir()}/`); 17 - const path = await mkdtemp(fileURLToPath(root)); 18 - const base = pathToFileURL(path + sep); 16 + const root = new URL(`bsh-`, `file://${tmpdir()}/`); 17 + const path = await mkdtemp(fileURLToPath(root)); 18 + const base = pathToFileURL(path + sep); 19 19 20 - for (const [name, content] of Object.entries(files)) { 21 - const url = new URL(name, base); 22 - const dir = new URL("./", url); 23 - await mkdir(dir, { recursive: true }); 24 - await writeFile(url, content, "utf8"); 25 - } 20 + for (const [name, content] of Object.entries(files)) { 21 + const url = new URL(name, base); 22 + const dir = new URL("./", url); 23 + await mkdir(dir, { recursive: true }); 24 + await writeFile(url, content, "utf8"); 25 + } 26 26 27 - const cleanup = () => rm(path, { recursive: true, force: true }); 28 - onTestFinished(cleanup); 27 + const cleanup = () => rm(path, { recursive: true, force: true }); 28 + onTestFinished(cleanup); 29 29 30 - const resolve = (...segments: string[]) => new URL(`./${segments.join("/")}`, base); 31 - const readFile = (file: PathLike) => 32 - fsReadFile(new URL(`./${file}`, base), { encoding: "utf-8" }); 30 + const resolve = (...segments: string[]) => new URL(`./${segments.join("/")}`, base); 31 + const readFile = (file: PathLike) => 32 + fsReadFile(new URL(`./${file}`, base), { encoding: "utf-8" }); 33 33 34 - return { 35 - root: pathToFileURL(path), 36 - resolve, 37 - readFile, 38 - cleanup, 39 - }; 34 + return { 35 + root: pathToFileURL(path), 36 + resolve, 37 + readFile, 38 + cleanup, 39 + }; 40 40 }