import { describe, it, expect } from "vitest"; import { markdownToHtml, wrapHtml } from "../services/markdown.js"; describe("markdownToHtml", () => { it("converts headings", () => { expect(markdownToHtml("# Hello")).toContain("

Hello

"); }); it("converts bold", () => { expect(markdownToHtml("**bold**")).toContain("bold"); }); it("converts italic", () => { expect(markdownToHtml("*italic*")).toContain("italic"); }); it("converts links", () => { expect(markdownToHtml("[link](http://x.com)")).toContain('link'); }); it("converts code blocks", () => { expect(markdownToHtml("```\ncode\n```")).toContain(""); }); it("handles empty string", () => { const result = markdownToHtml(""); expect(result).toContain(""); }); it("applies custom CSS", () => { const result = markdownToHtml("# Hi", "body{color:red}"); expect(result).toContain("body{color:red}"); }); it("uses default CSS when none provided", () => { const result = markdownToHtml("# Hi"); expect(result).toContain("font-family"); }); }); describe("wrapHtml", () => { it("wraps body in HTML document structure", () => { const result = wrapHtml("

test

"); expect(result).toContain(""); expect(result).toContain("

test

"); }); it("applies custom CSS", () => { expect(wrapHtml("

x

", "h1{color:blue}")).toContain("h1{color:blue}"); }); it("uses default CSS when none provided", () => { expect(wrapHtml("

x

")).toContain("font-family"); }); it("handles empty string body", () => { const result = wrapHtml(""); expect(result).toContain(""); }); });