diff --git a/test/microwaveprop/markdown_test.exs b/test/microwaveprop/markdown_test.exs new file mode 100644 index 00000000..d072a810 --- /dev/null +++ b/test/microwaveprop/markdown_test.exs @@ -0,0 +1,169 @@ +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 =~ "