starlight-view-modes
Version:
Starlight plugin adding view mode capabilities to your documentation website.
37 lines (29 loc) • 818 B
text/typescript
import { build } from "astro";
import { fileURLToPath } from "node:url";
import { vi } from "vitest";
export async function buildFixture(name: string) {
const fixturePath = fileURLToPath(
new URL(`fixtures/${name}/`, import.meta.url)
);
let output = "";
let status: "success" | "error";
function writeOutput(chunk: string | Uint8Array) {
output += String(chunk);
return true;
}
const stdoutWriteSpy = vi
.spyOn(process.stdout, "write")
.mockImplementation(writeOutput);
const stderrWriteSpy = vi
.spyOn(process.stderr, "write")
.mockImplementation(writeOutput);
try {
await build({ root: fixturePath });
status = "success";
} catch {
status = "error";
}
stderrWriteSpy.mockRestore();
stdoutWriteSpy.mockRestore();
return { output, status };
}