towerops/test/towerops_web/controllers/page_controller_test.exs

68 lines
2 KiB
Elixir

defmodule ToweropsWeb.PageControllerTest do
use ToweropsWeb.ConnCase
import Towerops.AccountsFixtures
test "GET / renders marketing page when not authenticated", %{conn: conn} do
conn = get(conn, ~p"/")
assert html_response(conn, 200) =~ "business impact"
assert html_response(conn, 200) =~ "network event"
end
test "homepage includes RFC 8288 Link discovery headers", %{conn: conn} do
conn = get(conn, ~p"/")
link_header = conn |> get_resp_header("link") |> List.first()
assert link_header =~ ~s(rel="api-catalog")
assert link_header =~ ~s(rel="service-doc")
assert link_header =~ ~s(rel="status")
assert link_header =~ "/.well-known/api-catalog"
assert link_header =~ "/docs/api"
assert link_header =~ "/health"
end
test "GET / redirects to organizations when authenticated", %{conn: conn} do
user = user_fixture()
conn = log_in_user(conn, user)
conn = get(conn, ~p"/")
assert redirected_to(conn) == ~p"/dashboard"
end
test "GET /privacy renders privacy policy page", %{conn: conn} do
conn = get(conn, ~p"/privacy")
response = html_response(conn, 200)
assert response =~ "Privacy Policy"
# Should render the privacy policy template
assert response
end
test "GET /privacy renders for authenticated users", %{conn: conn} do
user = user_fixture()
conn = log_in_user(conn, user)
conn = get(conn, ~p"/privacy")
response = html_response(conn, 200)
assert response =~ "Privacy Policy"
end
test "GET /terms renders terms of service page", %{conn: conn} do
conn = get(conn, ~p"/terms")
response = html_response(conn, 200)
assert response =~ "Terms of Service"
# Should render the terms template
assert response
end
test "GET /terms renders for authenticated users", %{conn: conn} do
user = user_fixture()
conn = log_in_user(conn, user)
conn = get(conn, ~p"/terms")
response = html_response(conn, 200)
assert response =~ "Terms of Service"
end
end