From 7e52c6660dc6c96ad7d6a05fe1444dca1899695f Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Mon, 6 Apr 2026 10:11:52 -0500 Subject: [PATCH] Add Tier 1 test coverage: EnrichmentStatus, Markdown, health, RemoteIp, Maidenhead MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EnrichmentStatus 0→100%, HealthController 0→100%, Maidenhead 74→96%, RemoteIp 56→94%, Markdown 0→92%. Total coverage 53→55%. --- test/microwaveprop/markdown_test.exs | 169 ++++++++++++++++++ .../radio/enrichment_status_test.exs | 130 ++++++++++++++ test/microwaveprop/radio/maidenhead_test.exs | 13 ++ .../controllers/health_controller_test.exs | 10 ++ .../plugs/remote_ip_test.exs | 83 +++++++++ 5 files changed, 405 insertions(+) create mode 100644 test/microwaveprop/markdown_test.exs create mode 100644 test/microwaveprop/radio/enrichment_status_test.exs create mode 100644 test/microwaveprop_web/controllers/health_controller_test.exs create mode 100644 test/microwaveprop_web/plugs/remote_ip_test.exs 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

" + end + + test "renders h2 through h6" do + for level <- 2..6 do + hashes = String.duplicate("#", level) + assert Markdown.to_html!("#{hashes} Title") =~ "Title" + end + end + + test "caps at h6 for excessive hashes" do + assert Markdown.to_html!("####### Too many") =~ "
" + end + end + + describe "paragraphs" do + test "renders simple paragraph" do + assert Markdown.to_html!("Hello world") =~ "

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 =~ "