From 29c4bf55822bf763d6d29344e76dd7eb46e4213f Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 9 May 2026 12:41:15 -0500 Subject: [PATCH] test: CoverageLive.Map probe_point malformed input + coverage_status broadcast --- .../live/coverage_live/map_test.exs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/towerops_web/live/coverage_live/map_test.exs b/test/towerops_web/live/coverage_live/map_test.exs index acc3c3fa..c65a739c 100644 --- a/test/towerops_web/live/coverage_live/map_test.exs +++ b/test/towerops_web/live/coverage_live/map_test.exs @@ -129,4 +129,38 @@ defmodule ToweropsWeb.CoverageLive.MapTest do assert payload == [] end end + + describe "probe_point with non-numeric inputs" do + test "probe_point with malformed lat/lon strings clamps to 0.0", %{conn: conn} do + {:ok, view, _html} = live(conn, ~p"/coverage") + + # Should hit the to_float :error branch + assert render_click(view, "probe_point", %{"lat" => "foo", "lon" => "bar"}) + end + end + + describe "coverage_status PubSub broadcast" do + test "rebuilds coverage list and pushes event on broadcast", %{conn: conn, org: org, site: site} do + cov = coverage_fixture(org.id, site.id, %{name: "PubSubCov"}) + + {:ok, _ready} = + Coverages.mark_status(cov, "ready", %{ + png_path: "/coverage/#{org.id}/#{cov.id}/rssi.png", + raster_path: "/coverage/#{org.id}/#{cov.id}/rssi.tif", + bbox_min_lat: 30.0, + bbox_min_lon: -98.0, + bbox_max_lat: 30.5, + bbox_max_lon: -97.5 + }) + + {:ok, view, _html} = live(conn, ~p"/coverage") + + # Send the broadcast manually + send(view.pid, {:coverage_status, "ready", cov.id}) + + # Force re-render — handle_info ran + html = render(view) + assert html =~ "PubSubCov" + end + end end