From 5bb9b05e31965397f10ca4d52dfe46d1bcec7ac6 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Fri, 24 Apr 2026 08:12:53 -0500 Subject: [PATCH] test: MapLive tracked callsign render + deployment_events broadcast --- test/aprsme_web/live/map_live/index_test.exs | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/test/aprsme_web/live/map_live/index_test.exs b/test/aprsme_web/live/map_live/index_test.exs index 62887ab..0fac729 100644 --- a/test/aprsme_web/live/map_live/index_test.exs +++ b/test/aprsme_web/live/map_live/index_test.exs @@ -681,6 +681,57 @@ defmodule AprsmeWeb.MapLive.IndexTest do assert render_hook(view, "update_callsign", %{"callsign" => "N0CALL"}) end + test "tracked callsign with a latest packet renders other_ssids list", %{conn: conn} do + import Aprsme.PacketsFixtures + + now = DateTime.utc_now() + + _p = + packet_fixture(%{ + sender: "TRACKME-7", + base_callsign: "TRACKME", + ssid: "7", + received_at: now, + lat: Decimal.new("33.0"), + lon: Decimal.new("-96.5"), + has_position: true + }) + + _p2 = + packet_fixture(%{ + sender: "TRACKME-9", + base_callsign: "TRACKME", + ssid: "9", + received_at: DateTime.add(now, -60, :second), + lat: Decimal.new("33.1"), + lon: Decimal.new("-96.6"), + has_position: true + }) + + {:ok, _view, html} = live(conn, "/TRACKME-7", on_error: :warn) + assert html =~ "TRACKME" + end + + test "deployment_events broadcast updates deployed_at", %{conn: conn} do + {:ok, view, _html} = live(conn, "/", on_error: :warn) + + deploy_time = DateTime.utc_now() + + # Send the deployment broadcast as a Phoenix.Socket.Broadcast (what the + # PubSub subscriber receives in the real system). + send( + view.pid, + %Phoenix.Socket.Broadcast{ + topic: "deployment_events", + event: "new_deployment", + payload: {:new_deployment, %{deployed_at: deploy_time}} + } + ) + + Process.sleep(20) + assert Process.alive?(view.pid) + end + test "handles drain_connections with small to_drain value", %{conn: conn} do {:ok, view, _html} = live(conn, "/", on_error: :warn)