diff --git a/test/towerops_web/live/coverage_live/show_test.exs b/test/towerops_web/live/coverage_live/show_test.exs index 2c3c539a..7cfbfacd 100644 --- a/test/towerops_web/live/coverage_live/show_test.exs +++ b/test/towerops_web/live/coverage_live/show_test.exs @@ -168,4 +168,17 @@ defmodule ToweropsWeb.CoverageLive.ShowTest do assert Show.status_badge_class("anything-else") =~ "bg-gray" end end + + describe "handle_info :coverage_status" do + test "coverage_status update reloads the coverage and pushes list-changed", + %{conn: conn, org: org, site: site} do + cov = coverage_fixture(org.id, site.id) + {:ok, view, _html} = live(conn, ~p"/coverage/#{cov.id}") + + send(view.pid, {:coverage_status, "ready", %{}}) + # Force a render to ensure the handler ran + html = render(view) + assert html =~ cov.name + end + end end diff --git a/test/towerops_web/live/site_live_test.exs b/test/towerops_web/live/site_live_test.exs index 5635bbff..334da80b 100644 --- a/test/towerops_web/live/site_live_test.exs +++ b/test/towerops_web/live/site_live_test.exs @@ -540,4 +540,49 @@ defmodule ToweropsWeb.SiteLiveTest do assert html =~ "Applied agent" end end + + describe "Show - force_rediscover_all" do + test "errors when no SNMP-enabled devices", %{conn: conn, organization: org} do + {:ok, site} = Sites.create_site(%{name: "ND Site", organization_id: org.id}) + + {:ok, _} = + Towerops.Devices.create_device(%{ + name: "Plain", + ip_address: "10.5.5.1", + site_id: site.id, + organization_id: org.id, + snmp_enabled: false + }) + + {:ok, view, _html} = live(conn, ~p"/sites/#{site.id}") + html = render_click(view, "force_rediscover_all", %{}) + assert html =~ "No SNMP-enabled devices" + end + + test "enqueues discovery for SNMP devices", %{conn: conn, organization: org} do + {:ok, site} = Sites.create_site(%{name: "RD Site", organization_id: org.id}) + + {:ok, _d1} = + Towerops.Devices.create_device(%{ + name: "S1", + ip_address: "10.5.5.2", + site_id: site.id, + organization_id: org.id, + snmp_enabled: true + }) + + {:ok, _d2} = + Towerops.Devices.create_device(%{ + name: "S2", + ip_address: "10.5.5.3", + site_id: site.id, + organization_id: org.id, + snmp_enabled: true + }) + + {:ok, view, _html} = live(conn, ~p"/sites/#{site.id}") + html = render_click(view, "force_rediscover_all", %{}) + assert html =~ "Discovery started for" + end + end end