towerops/test/towerops_web/live/weathermap_live_events_test.exs
Graham McIntire 27e8eb316f test(api_docs): assert page renders rather than checking for sample_token
The current ApiDocs/GraphQLDocs templates don't surface the sample_token
back into the rendered HTML, so the previous assertions were checking
for strings that don't exist. Drop them down to a 'page renders' check.
The controller branches that compute sample_token still get exercised.
2026-05-07 15:57:36 -05:00

74 lines
2.4 KiB
Elixir

defmodule ToweropsWeb.WeathermapLiveEventsTest do
@moduledoc "Drives WeathermapLive event handlers."
use ToweropsWeb.ConnCase, async: true
import Phoenix.LiveViewTest
setup :register_and_log_in_user
setup %{user: user} do
{:ok, organization} =
Towerops.Organizations.create_organization(%{name: "Weather Org"}, user.id)
%{organization: organization}
end
describe "weathermap event handlers" do
test "set_filter, search, toggle_layout all return :noreply", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
_ = render_hook(view, "set_filter", %{"filter" => "high"})
_ = render_hook(view, "search", %{"query" => "router"})
_ = render_hook(view, "toggle_layout", %{"mode" => "hierarchical"})
_ = render_hook(view, "close_detail_panel", %{})
assert true
end
@tag :skip
test "node_clicked with unknown node returns :noreply", %{conn: conn} do
_ = conn
:ok
end
test "toggle_fullscreen pushes URL change", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
_ = render_hook(view, "toggle_fullscreen", %{})
assert true
end
test "fullscreen=true URL param is reflected by the LiveView", %{conn: conn} do
assert {:ok, _view, _html} = live(conn, ~p"/weathermap?fullscreen=true")
end
test "tab=discovered loads discovered nodes", %{conn: conn} do
assert {:ok, _view, _html} = live(conn, ~p"/weathermap?tab=discovered")
end
test "node_clicked with non-existent node id is a no-op", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
assert render_hook(view, "node_clicked", %{
"node_id" => Ecto.UUID.generate(),
"node_type" => "managed"
})
end
test "handle_info :refresh_data triggers a re-render", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
send(view.pid, :refresh_data)
assert render(view)
end
test "handle_info {:topology_updated, _} triggers a re-render", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
send(view.pid, {:topology_updated, Ecto.UUID.generate()})
assert render(view)
end
test "handle_info {:capacity_updated, _} triggers a re-render", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
send(view.pid, {:capacity_updated, Ecto.UUID.generate()})
assert render(view)
end
end
end