import { describe, expect, test } from "bun:test"; import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { runCli, stripAnsi } from "./test-support.ts"; const CLI = `${import.meta.dir}/index.ts`; describe("cli — integration", () => { test("invokes core parser and produces output for a real fixture file", async () => { const dir = mkdtempSync(join(tmpdir(), "kitchen-md-")); const file = join(dir, "recipe.md"); writeFileSync( file, "---\ntitle: Test Recipe\nservings: 2\n---\n\n# Heading One\n\nA plain paragraph of prose.\n", ); try { const { exitCode, stdout } = await runCli(["view", file], CLI); const output = stripAnsi(stdout); expect(exitCode).toBe(0); expect(output).toContain("title: Test Recipe"); expect(output).toContain("servings: 2"); expect(output).toMatch(/─+/); expect(output).toContain("Heading One"); expect(output).toContain("A plain paragraph of prose."); } finally { rmSync(dir, { recursive: true, force: true }); } }); });