From d9f07e313ae6ab3a6601f3b013eb01b4de512921 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Thu, 23 Apr 2026 18:25:31 -0500 Subject: [PATCH] test: QueryBuilder recent_position_packets/callsign_history/weather_packets --- test/aprsme/packets/query_builder_test.exs | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/test/aprsme/packets/query_builder_test.exs b/test/aprsme/packets/query_builder_test.exs index 84d2228..4d8f573 100644 --- a/test/aprsme/packets/query_builder_test.exs +++ b/test/aprsme/packets/query_builder_test.exs @@ -235,4 +235,62 @@ defmodule Aprsme.Packets.QueryBuilderTest do assert is_list(query |> limit(10) |> Aprsme.Repo.all()) end end + + describe "recent_position_packets/1" do + test "returns a list without raising" do + assert is_list(Aprsme.Repo.all(QueryBuilder.recent_position_packets())) + end + + test "accepts keyword list opts" do + assert is_list(Aprsme.Repo.all(QueryBuilder.recent_position_packets(limit: 10, hours_back: 1))) + end + + test "accepts map opts with string keys" do + assert is_list(Aprsme.Repo.all(QueryBuilder.recent_position_packets(%{"limit" => 10, "hours_back" => 1}))) + end + end + + describe "callsign_history/2" do + test "returns a list without raising" do + assert is_list(Aprsme.Repo.all(QueryBuilder.callsign_history("TEST-1"))) + end + + test "supports hours_back in map form" do + assert is_list(Aprsme.Repo.all(QueryBuilder.callsign_history("TEST-1", %{hours_back: 2}))) + end + end + + describe "weather_packets/1" do + test "returns a list without raising" do + assert is_list(Aprsme.Repo.all(QueryBuilder.weather_packets())) + end + + test "supports callsign filter" do + assert is_list(Aprsme.Repo.all(QueryBuilder.weather_packets(%{callsign: "WXHELPER"}))) + end + + test "supports string callsign filter" do + assert is_list(Aprsme.Repo.all(QueryBuilder.weather_packets(%{"callsign" => "WXHELPER"}))) + end + end + + describe "maybe_filter_region/2" do + test "keyword opts without region is a no-op" do + query = QueryBuilder.maybe_filter_region(Packet, limit: 10) + assert is_list(query |> limit(5) |> Aprsme.Repo.all()) + end + + test "map opts with nil region is a no-op" do + query = QueryBuilder.maybe_filter_region(Packet, %{region: nil}) + assert is_list(query |> limit(5) |> Aprsme.Repo.all()) + end + end + + describe "select_map_fields/1" do + test "returns only the subset of fields used for map rendering" do + query = QueryBuilder.select_map_fields(Packet) + results = query |> limit(3) |> Aprsme.Repo.all() + assert is_list(results) + end + end end