test: Coverage schema statuses/0 + eirp_dbm + location helpers

This commit is contained in:
Graham McIntire 2026-05-09 10:44:19 -05:00
parent 1d5a5a8a73
commit 8b71e21c04

View file

@ -220,6 +220,44 @@ defmodule Towerops.Coverages.CoverageTest do
end
end
describe "statuses/0" do
test "returns the canonical list of valid status values" do
list = Coverage.statuses()
assert is_list(list)
assert "draft" in list
assert "computing" in list
end
end
describe "eirp_dbm/2" do
test "returns tx_power + antenna_gain - cable_loss" do
coverage = %Coverage{tx_power_dbm: 23.0, cable_loss_db: 0.5}
assert Coverage.eirp_dbm(coverage, 16.0) == 23.0 + 16.0 - 0.5
end
test "treats nil tx_power and cable_loss as zero" do
coverage = %Coverage{tx_power_dbm: nil, cable_loss_db: nil}
assert Coverage.eirp_dbm(coverage, 10.5) == 10.5
end
end
describe "location/1" do
test "returns the per-coverage override when set" do
coverage = %Coverage{latitude_override: 30.27, longitude_override: -97.74}
assert Coverage.location(coverage) == {30.27, -97.74}
end
test "falls back to site coordinates when override is unset" do
coverage = %Coverage{site: %{latitude: 32.0, longitude: -96.5}}
assert Coverage.location(coverage) == {32.0, -96.5}
end
test "returns nil when neither override nor site coordinates are present" do
assert Coverage.location(%Coverage{}) == nil
assert Coverage.location(%Coverage{site: %{latitude: nil, longitude: nil}}) == nil
end
end
defp changeset_error?(changeset, field) do
Keyword.has_key?(changeset.errors, field)
end