import { renderToStaticMarkup } from "react-dom/server"; import { describe, expect, it } from "vitest"; import { Markdown } from "@/components/markdown"; /** * Hilfetexte als Markdown – und nichts darueber hinaus (#010). * * Ein Hilfetext wird von einem Redakteur geschrieben und von jedem Techniker * geoeffnet. Rohes HTML darin waere fremder Code in fremden Browsern; ueber den * JSON-Import kaeme er sogar von ausserhalb des Hauses. `react-markdown` laesst * HTML von sich aus fallen — dieser Test haelt fest, dass niemand spaeter * `rehype-raw` dazustellt, weil „der Kunde Tabellen in HTML schreibt". * * Gerendert wird mit `react-dom/server`, damit der Test ohne DOM-Umgebung laeuft. */ function alsHtml(text: string): string { return renderToStaticMarkup(); } describe("Markdown im Hilfetext", () => { it("rendert Fettschrift, Listen und Code", () => { const html = alsHtml("**wichtig**\n\n- eins\n- zwei\n\n`Get-Help`"); expect(html).toContain("wichtig"); expect(html).toContain("
  • eins
  • "); expect(html).toContain("Get-Help"); }); it("rendert Tabellen aus GitHub-Markdown", () => { const html = alsHtml("| Gerät | Port |\n|---|---|\n| Switch | 24 |"); expect(html).toContain(""); expect(html).toContain("Switch"); }); it("laesst ein script-Element nicht durch", () => { const html = alsHtml('Hinweis Ende'); expect(html).not.toContain("