prop/test/microwaveprop_web/controllers/api_docs_controller_test.exs
Graham McIntire c56b55d5af
feat: serve API docs at /docs/api
- /docs/api → LiveView rendering README.md as HTML
- /docs/api/openapi.yaml → raw OpenAPI 3.1 spec
- /docs/api/README.md → raw markdown source
2026-05-09 09:09:45 -05:00

22 lines
837 B
Elixir

defmodule MicrowavepropWeb.ApiDocsControllerTest do
use MicrowavepropWeb.ConnCase, async: true
describe "GET /docs/api/openapi.yaml" do
test "serves the OpenAPI spec as application/yaml", %{conn: conn} do
conn = get(conn, ~p"/docs/api/openapi.yaml")
assert conn.status == 200
assert get_resp_header(conn, "content-type") == ["application/yaml; charset=utf-8"]
assert conn.resp_body =~ "openapi: 3.1.0"
assert conn.resp_body =~ "/api/v1"
end
end
describe "GET /docs/api/README.md" do
test "serves the README markdown source", %{conn: conn} do
conn = get(conn, ~p"/docs/api/README.md")
assert conn.status == 200
assert get_resp_header(conn, "content-type") == ["text/markdown; charset=utf-8"]
assert conn.resp_body =~ "# Microwaveprop REST API"
end
end
end