towerops/test/towerops_web/live/weathermap_live_test.exs
Graham McIntire 03ec909e3a test: add LiveView tests following testing-liveview patterns
Apply Testing LiveView course patterns (live/2, has_element?,
render_click, form/3). Add tests for MobileQRLive, WeathermapLive,
StatusPageLive, controllers, plugs, and pure function modules.
Expand proto decode coverage to 85.24%.
2026-05-07 12:55:39 -05:00

64 lines
1.6 KiB
Elixir

defmodule ToweropsWeb.WeathermapLiveTest do
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: "Weathermap Org"}, user.id)
%{organization: organization}
end
describe "mount" do
test "renders weathermap page", %{conn: conn} do
{:ok, _view, html} = live(conn, ~p"/weathermap")
assert html =~ "Weathermap"
end
end
describe "handle_event" do
test "set_filter does not crash", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
render_click(view, "set_filter", %{"filter" => "wired"})
assert render(view)
end
test "search does not crash", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
render_click(view, "search", %{"query" => "router"})
assert render(view)
end
test "toggle_layout does not crash", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
render_click(view, "toggle_layout", %{"mode" => "hierarchical"})
assert render(view)
end
test "close_detail_panel does not crash", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
render_click(view, "close_detail_panel", %{})
assert render(view)
end
end
describe "handle_info" do
test "refresh_data does not crash", %{conn: conn} do
{:ok, view, _html} = live(conn, ~p"/weathermap")
send(view.pid, :refresh_data)
Process.sleep(50)
assert render(view)
end
end
end