prop/test/microwaveprop/radio
Graham McIntire cfb0c51d2f
test: add property coverage for grid snaps, backoff, notes
Pure-function invariants that example tests can't express at scale:

- Weather.round_to_iemre_grid/2, HrrrClient.nearest_hrrr_hour/1,
  NexradClient.round_to_5min/1, NarrClient.snap_to_analysis_hour/1:
  each is idempotent, its output satisfies a grid/slot-membership
  predicate, and lies within a bounded distance of the input.
- NarrClient.in_coverage?/1: coverage_end is an exclusive upper
  bound; any timestamp after it is out of coverage.
- IemreFetchWorker.backoff/1: result is in [120, 21_600], monotonic
  non-decreasing in attempt, equals 120*2^(attempt-1) pre-cap.
- Contact submission_changeset notes field: every non-blank string
  up to 2000 chars validates; any longer string is rejected.

22 new properties (139 → 161 including existing); all 2,300 tests
green, credo clean.
2026-04-23 13:05:06 -05:00
..
adif_import_test.exs feat(adif): carry NOTES / COMMENT into contact notes 2026-04-23 11:05:39 -05:00
band_resolver_property_test.exs test(property): add property tests for parsing + domain conversions 2026-04-21 13:57:47 -05:00
band_resolver_test.exs Rename 9cm band 3456 → 3400 2026-04-16 12:40:38 -05:00
callsign_client_test.exs test: cover geo, qrz record, callsign client 2026-04-16 14:09:44 -05:00
contact_edit_test.exs feat(contacts): private flag with scope-aware visibility 2026-04-18 17:49:01 -05:00
contact_submission_test.exs test: add property coverage for grid snaps, backoff, notes 2026-04-23 13:05:06 -05:00
contact_test.exs feat(contacts): antenna height fields feed terrain analysis 2026-04-18 15:48:14 -05:00
csv_import_test.exs feat(contacts): add free-form notes field 2026-04-23 11:02:27 -05:00
edit_notifier_test.exs test: cover radio/edit_notifier 2026-04-16 14:58:55 -05:00
enrichment_status_test.exs Add Tier 1 test coverage: EnrichmentStatus, Markdown, health, RemoteIp, Maidenhead 2026-04-06 10:15:38 -05:00
import_matcher_test.exs CSV/ADIF import: upsert existing contacts on grid/mode refinement 2026-04-16 10:57:37 -05:00
import_run_test.exs feat(import): async CSV import with progress-tracking schema 2026-04-17 09:31:22 -05:00
maidenhead_property_test.exs test(property): add property tests for parsing + domain conversions 2026-04-21 13:57:47 -05:00
maidenhead_test.exs Add /beacons CRUD and /users admin page 2026-04-08 12:01:45 -05:00