diff --git a/test/aprsme_web/live/status_live/index_test.exs b/test/aprsme_web/live/status_live/index_test.exs index 2685870..1a7dc1b 100644 --- a/test/aprsme_web/live/status_live/index_test.exs +++ b/test/aprsme_web/live/status_live/index_test.exs @@ -12,6 +12,44 @@ defmodule AprsmeWeb.StatusLive.IndexTest do assert html =~ "System Status" assert html =~ "APRS-IS Connection" end + + test "renders the connected-path template when cache has a live status", %{conn: conn} do + # Ensure the cache ETS table exists for test. + _ = + case :ets.info(:query_cache) do + :undefined -> :ets.new(:query_cache, [:named_table, :public, :set]) + _ -> :ok + end + + status = %{ + connected: true, + server: "cached.aprs.test", + port: 14_580, + connected_at: DateTime.add(DateTime.utc_now(), -3600, :second), + uptime_seconds: 3600, + login_id: "N0CALL", + filter: "r/33/-96/100", + packet_stats: %{ + total_packets: 1234, + last_packet_at: DateTime.add(DateTime.utc_now(), -30, :second), + packets_per_second: 5 + }, + stored_packet_count: 5000, + oldest_packet_timestamp: DateTime.add(DateTime.utc_now(), -86_400, :second) + } + + Aprsme.Cache.put(:query_cache, "aprs_status", status) + + {:ok, _lv, html} = live(conn, ~p"/status", on_error: :warn) + assert html =~ "Connected" + assert html =~ "cached.aprs.test" + assert html =~ "N0CALL" + # Total packets formatted with thousands separator. + assert html =~ "1,234" + + # Cleanup so other tests aren't affected. + Aprsme.Cache.del(:query_cache, "aprs_status") + end end describe "handle_info({:status_updated, status}, socket)" do