import { describe, it, expect, vi } from "vitest"; import { markdownToHtml } from "../../lib/content"; describe("Markdown Processing", () => { describe("markdownToHtml", () => { it("converts basic markdown to HTML", () => { const markdown = "# Heading\n\nThis is a paragraph."; const result = markdownToHtml(markdown); expect(result).toContain("

Heading

"); expect(result).toContain("This is a paragraph."); }); it("converts bold text", () => { const markdown = "This is **bold** text."; const result = markdownToHtml(markdown); expect(result).toContain("bold"); }); it("converts italic text", () => { const markdown = "This is *italic* text."; const result = markdownToHtml(markdown); expect(result).toContain("italic"); }); it("converts links", () => { const markdown = "Visit [Google](https://google.com) for search."; const result = markdownToHtml(markdown); expect(result).toContain('Google'); }); it("converts line breaks to
tags", () => { const markdown = "Line 1\nLine 2\nLine 3"; const result = markdownToHtml(markdown); expect(result).toContain("Line 1
"); expect(result).toContain("Line 2
"); expect(result).toContain("Line 3"); }); it("converts multiple line breaks to paragraph breaks", () => { const markdown = "Paragraph 1\n\nParagraph 2\n\nParagraph 3"; const result = markdownToHtml(markdown); expect(result).toContain("

Paragraph 1

"); expect(result).toContain("

Paragraph 2

"); expect(result).toContain("

Paragraph 3

"); }); it("adds md-gap class to paragraphs", () => { const markdown = "Paragraph 1\n\nParagraph 2"; const result = markdownToHtml(markdown); expect(result).toContain('

Paragraph 1

'); expect(result).toContain('

Paragraph 2

'); }); it("converts unordered lists", () => { const markdown = "- Item 1\n- Item 2\n- Item 3"; const result = markdownToHtml(markdown); expect(result).toContain(""); }); it("converts ordered lists", () => { const markdown = "1. First item\n2. Second item\n3. Third item"; const result = markdownToHtml(markdown); expect(result).toContain("
    "); expect(result).toContain("
  1. First item
  2. "); expect(result).toContain("
  3. Second item
  4. "); expect(result).toContain("
  5. Third item
  6. "); expect(result).toContain("
"); }); it("converts code blocks", () => { const markdown = "```javascript\nconst x = 1;\n```"; const result = markdownToHtml(markdown); expect(result).toContain("
");
      expect(result).toContain("");
      expect(result).toContain("const x = 1;");
    });

    it("converts inline code", () => {
      const markdown = "Use `console.log()` to debug.";
      const result = markdownToHtml(markdown);

      expect(result).toContain("console.log()");
    });

    it("converts blockquotes", () => {
      const markdown = "> This is a quote\n> with multiple lines";
      const result = markdownToHtml(markdown);

      expect(result).toContain("
"); expect(result).toContain("This is a quote"); expect(result).toContain("with multiple lines"); expect(result).toContain("
"); }); it("converts horizontal rules", () => { const markdown = "Text above\n\n---\n\nText below"; const result = markdownToHtml(markdown); expect(result).toContain("
"); }); it("handles mixed content", () => { const markdown = "# Title\n\nThis is a **bold** paragraph with a [link](https://example.com).\n\n- List item 1\n- List item 2\n\nAnother paragraph with `code`."; const result = markdownToHtml(markdown); expect(result).toContain("

Title

"); expect(result).toContain("bold"); expect(result).toContain('link'); expect(result).toContain("