Commit graph

153 commits

Author SHA1 Message Date
eeec857d01
Add tests for batch_dispatch out-of-bounds removal and load_historical_batch matching generation 2026-05-08 17:13:32 -05:00
02d435557a
Add tests for set_location to_float branches and back-to-back bounds_changed 2026-05-08 17:01:30 -05:00
5685b6931a
Add coverage tests for RF path station packets, process_bounds_update remove_markers, and initialize_replay reschedule 2026-05-08 16:57:09 -05:00
5ba458d505
Add coverage tests for clear_and_reload_markers, cleanup_old_packets, packet_batch low-zoom paths, and historical_loading_timeout 2026-05-08 16:50:44 -05:00
446497d60b
Push coverage past 90% with MapLive postgres_packet/packet_batch and preferred_tracked_packet tests 2026-05-08 14:24:47 -05:00
3f7170cfa2
Add coverage tests for LeaderElection, MapLive integration, ApiDocsLive, BroadcastTaskSupervisor, StatusLive, and Packets 2026-05-08 14:15:35 -05:00
3c1ea54184
Add coverage tests for HistoricalLoader low-zoom non-final and pending-bounds paths 2026-05-08 13:33:13 -05:00
d34eab6447
Add coverage tests for HistoricalLoader cursor advance and zoom edge cases 2026-05-08 13:27:01 -05:00
7de1aef648
Add coverage tests for HistoricalLoader real-Packets path and Packets edge cases 2026-05-08 13:21:53 -05:00
5bf66f81b7
Add coverage tests for StreamingPacketsPubSub, Mix.Tasks.Compile.Unused, and HealthCheck 2026-05-08 13:15:59 -05:00
b2a1d8e7e9
Add coverage tests for MixUnused.Analyzer and HistoricalLoader edge cases 2026-05-08 13:09:24 -05:00
aa809976ab
Add coverage tests for DevicesSeeder, StatusLive helpers, DataBuilder, and HistoricalLoader 2026-05-08 13:04:37 -05:00
1e8e97d5f4
Add coverage tests for Telemetry, ApiCSRF, Packets, and PacketsLive.Index 2026-05-08 12:55:20 -05:00
039ee83ecb
Add HistoricalLoader real-Packets module path tests and LeaderElection delay branch test 2026-05-08 12:20:53 -05:00
5066cf7c3b
Add coverage tests for AprsSymbol render helpers and DbOptimizer atom/identifier paths 2026-05-08 12:15:46 -05:00
4bf1a6b3b3
Add coverage tests for CoreComponents (input form/field, safe_row_id) and DataBuilder edge cases 2026-05-08 12:11:14 -05:00
d0296c9f4e
Expand mobile channel, packet consumer, and user settings tests for coverage 2026-05-08 12:08:21 -05:00
57077e2bb1
Add coverage tests for partition manager, map live message handlers, display manager, weather/device id paths
Bumps total coverage to 88.11%.
2026-05-08 12:03:10 -05:00
f9cfbf630e
Improve test coverage to 88.02%
Adds tests covering:
- Aprsme.Packet edge cases (already committed)
- Encoding valid_codepoint? branches via slow grapheme path and encoding_info shapes
- ErrorHandler database/network error categorization (CastError, ConstraintError, QueryError, Postgrex.Error, RuntimeError circuit_open/timeout, custom map :reason)
- HealthCheck plug ask_shutting_down? nil and unresponsive-pid paths
- SpatialPubSub ensure_float branches, dateline broadcast wrap-around, monitored client DOWN handler, no-coordinate broadcast skip
- DataBuilder weather popup, weather-only fallback, tuple value conversion, string weather convert_unit branches
- DeviceIdentification fetch_devices_from_url default-arg head
- PageController format_uptime branches via fake Aprsme.Is GenServer
- WeatherLive.CallsignView compare_timestamps branches via :weather_packet messages
- PacketConsumer field-conversion private helpers via crafted handle_events events
2026-05-08 11:58:09 -05:00
b88e6c373b
Improve test coverage from 87.06% to 87.35%
Adds tests for the PromEx supervision module and custom plugin (both
were 0–25% covered), expands the HealthCheck plug to exercise the
readiness success path through the live ShutdownHandler, adds public-API
roundtrip tests for PacketReplay's via_tuple wrappers, and covers
several private-helper fallback branches in Aprsme.Packet
(ParseError data_extended, MicE map symbol defaults, struct
data_extended, weather binary, has_position via legacy lat/lon, PHG /
altitude error parsing).
2026-05-08 11:08:44 -05:00
1e32ce7051
Improve test coverage to 87% and point vendor/aprs submodule at codeberg
Coverage:
- Adds focused tests across 13 files covering previously-uncovered
  branches: Packet changeset normalisation (course, wind_direction,
  struct data_extended); Packets store_packet edge cases (nested
  position shapes, ssid handling, string-keyed raw_packet);
  DeviceIdentification HTTP success/404 via Req plug stub; ResendAdapter
  catch-all body, deliver_many, nil/binary formatters; ApiDocsLive
  packets with missing fields; AprsSymbol normalize helpers;
  BadPacketsLive refresh and postgres_notify; MobileChannel handle_info
  catch-all and postgres_packet path; PacketProcessor existing-marker
  movement detection; PacketReplay sanitize_value type clauses;
  InsertOptimizer GenServer lifecycle and negative-duration metric;
  PageController shutdown-handler integration; UrlParams delegated
  helpers.
- mix.exs: configure test_coverage with summary threshold of 87 and
  ignore_modules for test fixtures and macro-only template modules.

Bug fix:
- MapLive.Index handle_info: add a clause for the raw {:new_deployment,
  _} tuple. Phoenix.PubSub.broadcast delivers the raw payload to plain
  subscribers, but the existing handler only matched the %Broadcast{}
  fast-lane wrapper. DeploymentNotifier broadcasts via the raw path,
  which crashed the LiveView under test concurrency.

Submodule:
- Update .gitmodules vendor/aprs URL from
  https://github.com/aprsme/aprs.git to
  ssh://git@codeberg.org/gmcintire/aprs.git.
2026-05-05 15:18:28 -05:00
a377847122
chore: remove unused deps, replace resend with custom Swoosh adapter, fix test isolation
Remove faker, floki, igniter, ecto_psql_extras (zero usages), exvcr
(zero usages), and resend. Replace resend with Aprsme.Swoosh.ResendAdapter
using the already-present req dependency. Frees 23 packages total from
the lockfile including hackney, certifi, and the tesla dependency chain.

Fix two pre-existing test isolation bugs:
- signal_handler_test called the real ShutdownHandler.shutdown() via SIGTERM
  simulation without restoring state, causing page_controller_test to see
  shutting_down: true and return 503
- page_controller_test setup now resets ShutdownHandler state defensively
2026-04-24 13:04:18 -05:00
145ff5fecd
test: MapLive historical_loading_timeout matching generation + show_error handler 2026-04-24 09:57:11 -05:00
a1f88c41bd
test: expand coverage for StatusLive cluster render + MobileChannel type conversions 2026-04-24 09:53:10 -05:00
4a4e25c08f
test: cover InfoLive.Show path decode branches + position fallback 2026-04-24 09:51:07 -05:00
4875904303
test: InfoLive.Show weather link + no-packet branches 2026-04-24 09:07:29 -05:00
e3a6a8268d
test: MapLive tracked-callsign filtering + trail duration cleanup 2026-04-24 09:03:31 -05:00
cde015deca
test: MapLive.Index invalid-bounds rejection 2026-04-24 09:01:48 -05:00
dcb759ecfa
test: InfoLive.Show PHG render paths 2026-04-24 08:59:36 -05:00
d01a15eac0
test: reset Hammer rate limiter state in MapLive.Index suite 2026-04-24 08:54:56 -05:00
d890ec129a
test: TestHelpers module coverage 2026-04-24 08:48:54 -05:00
a9647916fa
test: PacketsLive.CallsignView overflow + iso8601 broadcast paths 2026-04-24 08:46:35 -05:00
1b8d359f41
test: StatusLive.Index health_score 3/4 render paths 2026-04-24 08:44:47 -05:00
15684dd708
test: PageController status_json uptime formatting paths 2026-04-24 08:41:56 -05:00
c264a9bc3d
test: HistoricalLoader RF path + low-zoom heat map paths 2026-04-24 08:32:29 -05:00
eeaf9dcdf5
test: HealthCheck edge cases 2026-04-24 08:28:13 -05:00
ee0830a7fc
test: InfoLive.Show heard-by stations path decoding 2026-04-24 08:20:47 -05:00
25804a6f7f
test: InfoLive.Show renders with seeded device identifier 2026-04-24 08:20:03 -05:00
6f142a7391
fix(weather): use Map.get for fallback comment access; add WeatherLive render tests 2026-04-24 08:15:01 -05:00
5bb9b05e31
test: MapLive tracked callsign render + deployment_events broadcast 2026-04-24 08:12:53 -05:00
43036a6b6d
test: StatusLive.Index connected-path render via cached status 2026-04-24 08:08:24 -05:00
34729f8769
test: HistoricalLoader cursor/zoom/limit edge cases 2026-04-24 08:07:22 -05:00
1b9743191a
test: broader InfoLive rendering + PacketReplay update_filters branches 2026-04-23 18:23:55 -05:00
bdcba9b18e
test: InfoLive.Show broadcast paths with position change 2026-04-23 18:18:26 -05:00
4c94dc3059
test: MapLive.Index event edge cases + clear_and_reload at low zoom 2026-04-23 18:14:44 -05:00
5f64a43304
test: additional MapLive.Index handle_info + InfoLive path decoders 2026-04-23 18:08:10 -05:00
965e177841
test: HistoricalLoader bounds-driven load paths via mock 2026-04-23 18:06:17 -05:00
fac52cf288
test: broaden coverage across Packets/Weather/Info/Map/Status modules 2026-04-23 18:04:36 -05:00
0f4e5234f1
test: add InfoLive.Show scenarios for various packet types and broadcasts 2026-04-23 17:44:45 -05:00
001303d17c
test: integration tests for spatial_packet and packet_batch paths 2026-04-23 17:39:37 -05:00