import test from "node:test"; import assert from "node:assert/strict"; import { StyleRefiner } from "../src/ocr/style-refiner"; function createRefiner(response: string): any { const refiner: any = new StyleRefiner({ settings: { ollamaHost: "http://localhost:11435", styleModel: "qwen3:32b", }, } as any); refiner.queryOllama = async () => response; return refiner; } test("refineMarkdown rejects empty Ollama output", async () => { const refiner = createRefiner(""); await assert.rejects(() => refiner.refineMarkdown("Some source Markdown"), /empty Markdown/); }); test("mergeAndRefine rejects unexpectedly short output for large inputs", async () => { const refiner = createRefiner("too short"); const largeInput = "handwritten note ".repeat(80); await assert.rejects(() => refiner.mergeAndRefine(largeInput, ""), /unexpectedly short/); }); test("mergeAndRefine returns acceptable Ollama output", async () => { const output = "# Heading\n\n" + "content ".repeat(120); const refiner = createRefiner(output); assert.equal(await refiner.mergeAndRefine("content ".repeat(80), ""), output.trim()); });