test: expand Packets tests with positions and latest-packet helpers
This commit is contained in:
parent
91c9220a2d
commit
089ea1f4fb
1 changed files with 64 additions and 0 deletions
|
|
@ -1033,4 +1033,68 @@ defmodule Aprsme.PacketsTest do
|
||||||
assert is_list(results)
|
assert is_list(results)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "get_latest_positions_for_callsigns/1" do
|
||||||
|
test "returns a map from callsign to the latest packet" do
|
||||||
|
_old =
|
||||||
|
PacketsFixtures.packet_fixture(%{
|
||||||
|
sender: "POS1",
|
||||||
|
received_at: DateTime.add(DateTime.utc_now(), -7200, :second),
|
||||||
|
lat: 39.0,
|
||||||
|
lon: -98.0,
|
||||||
|
has_position: true
|
||||||
|
})
|
||||||
|
|
||||||
|
_new =
|
||||||
|
PacketsFixtures.packet_fixture(%{
|
||||||
|
sender: "POS1",
|
||||||
|
received_at: DateTime.add(DateTime.utc_now(), -60, :second),
|
||||||
|
lat: 39.5,
|
||||||
|
lon: -98.5,
|
||||||
|
has_position: true
|
||||||
|
})
|
||||||
|
|
||||||
|
_other =
|
||||||
|
PacketsFixtures.packet_fixture(%{
|
||||||
|
sender: "POS2",
|
||||||
|
received_at: DateTime.utc_now(),
|
||||||
|
lat: 40.0,
|
||||||
|
lon: -99.0,
|
||||||
|
has_position: true
|
||||||
|
})
|
||||||
|
|
||||||
|
result = Packets.get_latest_positions_for_callsigns(["POS1", "POS2", "MISSING"])
|
||||||
|
assert is_list(result)
|
||||||
|
callsigns = Enum.map(result, & &1.callsign)
|
||||||
|
assert "POS1" in callsigns or "POS2" in callsigns
|
||||||
|
end
|
||||||
|
|
||||||
|
test "returns an empty list for an empty callsign list" do
|
||||||
|
assert Packets.get_latest_positions_for_callsigns([]) == []
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "get_latest_packets_for_callsigns/1" do
|
||||||
|
test "returns the latest packet for each callsign" do
|
||||||
|
_ =
|
||||||
|
PacketsFixtures.packet_fixture(%{
|
||||||
|
sender: "LPFC1",
|
||||||
|
received_at: DateTime.add(DateTime.utc_now(), -3600, :second)
|
||||||
|
})
|
||||||
|
|
||||||
|
_ =
|
||||||
|
PacketsFixtures.packet_fixture(%{
|
||||||
|
sender: "LPFC2",
|
||||||
|
received_at: DateTime.utc_now()
|
||||||
|
})
|
||||||
|
|
||||||
|
result = Packets.get_latest_packets_for_callsigns(["LPFC1", "LPFC2", "NOPE"])
|
||||||
|
assert is_list(result) or is_map(result)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "handles an empty list" do
|
||||||
|
result = Packets.get_latest_packets_for_callsigns([])
|
||||||
|
assert result == [] or result == %{}
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue