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
da080ed55d
test: add RegexCache bulk pattern test and PageController uptime format
2026-04-23 17:31:57 -05:00
a285eb815b
test: add PacketsLive.CallsignView mount tests
2026-04-23 17:22:23 -05:00
4a00868c2a
test: reset rate-limiter ETS between api controller tests to prevent 429 flakes
2026-04-23 17:22:23 -05:00
dac0198825
test: add MapLive.Index integration tests with real DB packets
2026-04-23 17:22:23 -05:00
30d852fbc5
test: info_live full render with various packet types
2026-04-23 17:11:50 -05:00
3eec54439b
test: add MapLive.Index zoom threshold and tracking tests
2026-04-23 17:05:59 -05:00
b4d0093a8f
test: add MapLive.Index URL param and callsign route tests
2026-04-23 17:05:59 -05:00
adb304e069
test: cover HistoricalLoader pure functions
2026-04-23 17:05:59 -05:00
0a1c5aa61d
test: add ApiDocsLive full-packet path to exercise format functions
2026-04-23 16:58:13 -05:00
e3dfdf03ba
test: cover PacketConsumer init and process_batch callbacks
2026-04-23 16:58:13 -05:00
f0db8f711e
test: add MapLive.Index message handler tests
2026-04-23 16:58:13 -05:00
b6adf64dbd
test: add MapLive.Index event-handler integration tests
2026-04-23 16:51:42 -05:00
91c9220a2d
test: cover ThemeManager selector, ApiDocsLive packet path and InfoLive Show integration
2026-04-23 16:49:54 -05:00
a843c91191
test: expand CoreComponents coverage for modal, table, list, back, simple_form
2026-04-23 16:49:54 -05:00
a5b2c4bccb
test: cover UserAuth, StatusLive handlers and UserNotifier
2026-04-23 16:40:47 -05:00
46e71019de
test: expand coverage for Layouts, DeviceCache, Components and others
2026-04-23 16:36:01 -05:00
41731257e6
test: cover auth LiveViews, PacketReplay, ShutdownHandler and more
2026-04-23 16:30:51 -05:00
16d2e929c0
test: push coverage to 70% with more CoreComponents and PostgresNotifier
...
- CoreComponents.input/1: expanded coverage to include the select,
textarea, generic-text, and unchecked-checkbox branches, plus
error-vs-no-error border styling.
- PostgresNotifier: handle_info forwards pg_notify payload to
Aprsme.PubSub and ignores unrelated messages.
Coverage 69.56 → 70.11%.
2026-04-23 16:18:04 -05:00
fa893dd12e
test: cover ErrorHTML, Layouts, MapLive.Components, CoreComponents, Accounts
...
- ErrorHTML: explicit 400 path + 401/403/999 delegation.
- Layouts.body_class/1 returns the expected light/dark theme classes.
- MapLive.Components: map_container + slideover_panel exercising all
connection_status variants, loading state, tracked_callsign clear
button, and view-mode radios.
- CoreComponents: icon (found + fallback), button, label, error,
flash (info + error + close=false), checkbox input, JS composers.
- Accounts: get_user_by_email{_and_password}, get_user!, register_user
happy-path + error paths, change_* changesets, session-token
round-trip.
Refactor: DeviceIdentification.maybe_refresh_devices splits its nested
logic into fetch_most_recent_device/0, to_datetime/1, and
refresh_if_stale/2 — each a multi-clause function matching on shape.
Coverage 68.28 → 69.56%.
2026-04-23 16:16:31 -05:00
20d463794b
test: cover AprsmeWeb.Gettext helpers
...
- supported_locales/0 returns the declared ~w(en es de fr) list.
- put_locale/1 sets the Gettext process locale for each supported
value and raises FunctionClauseError for unsupported input.
3 tests, async:false because they mutate process-wide Gettext state.
2026-04-23 14:54:16 -05:00
1d68868d27
refactor: pattern-match InfoLive.Show path parsing + add tests
...
- parse_path_element_with_link splits its fat `if`/or-chain into three
focused helpers: linkable_callsign?/1 (regex + alias check),
path_alias?/1 (four String.starts_with guards), and
classify_path_element/2 (link vs. text dispatched on the boolean).
- display_for_element/2 chooses the callsign form with/without the
asterisk via two function heads instead of an inline `if`.
Adds 7 tests covering the parse_path_with_links/1 public API — plain
callsigns, heard-via asterisk preservation, non-linkable aliases
(WIDE/TRACE/RELAY/TCPIP), q-constructs, whitespace trimming, and mixed
paths.
2026-04-23 14:23:16 -05:00