defmodule Microwaveprop.MarkdownTest do use ExUnit.Case, async: true alias Microwaveprop.Markdown describe "headings" do test "renders h1" do assert Markdown.to_html!("# Hello") =~ "
Hello world
" end test "joins multi-line paragraphs" do result = Markdown.to_html!("Line one\nLine two") assert result =~ "Line one Line two
" end test "separates paragraphs by blank lines" do result = Markdown.to_html!("Para one\n\nPara two") assert result =~ "Para one
" assert result =~ "Para two
" end end describe "fenced code blocks" do test "renders code block" do md = "```\nfoo\nbar\n```" result = Markdown.to_html!(md) assert result =~ "foo\nbar"
end
test "renders code block with language" do
md = "```elixir\nIO.puts(\"hi\")\n```"
result = Markdown.to_html!(md)
assert result =~ ~s()
end
test "escapes HTML in code blocks" do
md = "```\n\n```"
result = Markdown.to_html!(md)
assert result =~ "<script>"
refute result =~ "