defmodule Microwaveprop.Radio.ContactTest do use Microwaveprop.DataCase, async: true alias Microwaveprop.Radio.Contact @valid_attrs %{ station1: "W1AW", station2: "K3LR", qso_timestamp: ~U[2026-03-28 12:00:00Z], grid1: "FN31pr", grid2: "EN91jm", pos1: %{lat: 41.714, lng: -72.727}, pos2: %{lat: 41.049, lng: -80.166}, mode: "SSB", band: Decimal.new("144.2"), distance_km: Decimal.new("623.4") } describe "changeset/2" do test "valid attributes" do changeset = Contact.changeset(%Contact{}, @valid_attrs) assert changeset.valid? end test "requires station1, station2, qso_timestamp, mode, and band" do changeset = Contact.changeset(%Contact{}, %{}) assert %{ station1: ["can't be blank"], station2: ["can't be blank"], qso_timestamp: ["can't be blank"], mode: ["can't be blank"], band: ["can't be blank"] } = errors_on(changeset) end test "persists to the database" do changeset = Contact.changeset(%Contact{}, @valid_attrs) assert {:ok, contact} = Repo.insert(changeset) assert contact.station1 == "W1AW" assert contact.station2 == "K3LR" assert contact.mode == "SSB" assert Decimal.equal?(contact.band, Decimal.new("144.2")) assert Decimal.equal?(contact.distance_km, Decimal.new("623.4")) end end end