using Elternbeirat.Web.Shared; namespace Elternbeirat.Web.Tests; /// /// Unit tests for the Markdown pipeline behind every editor-written body. Pure logic, /// no PocketBase needed. /// public class MarkdownTests { [Theory] [InlineData(null)] [InlineData("")] public void Empty_input_renders_nothing(string? markdown) => Markdown.ToHtml(markdown).ShouldBe(""); [Fact] public void Custom_container_renders_a_div_with_its_name_as_class() { var html = Markdown.ToHtml("::: kennzahlen\n- **seit 1975** Gründung\n:::"); html.ShouldContain("
"); html.ShouldContain("seit 1975"); } [Fact] public void Unknown_container_renders_its_content_as_normal_text() { // A typo in the block name must cost the styling, never the text. var html = Markdown.ToHtml("::: gibtsnicht\nNormaler Text.\n:::"); html.ShouldContain("

Normaler Text.

"); html.ShouldNotContain(":::"); } [Fact] public void Raw_html_is_escaped_not_passed_through() { // The body is rendered as a MarkupString; a passed-through \n\n
Box
"); html.ShouldNotContain("