test: StatusLive.Index connected-path render via cached status

This commit is contained in:
Graham McIntire 2026-04-24 08:08:24 -05:00
parent 34729f8769
commit 43036a6b6d
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59

View file

@ -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