pinchflat/test/pinchflat/utils/changeset_utils_test.exs
Kieran 933daf8c78
[Housekeeping] Improve test stability (#232)
* Ensured all tests use at least the DataCase module

* addressed one flakey test

* More flakey tests

* Consolidated Mox usage
2024-05-08 09:57:36 -07:00

33 lines
865 B
Elixir

defmodule Pinchflat.Utils.ChangesetUtilsTest do
use Pinchflat.DataCase
defmodule MockSchema do
use Ecto.Schema
import Ecto.Changeset
import Pinchflat.Utils.ChangesetUtils
schema "mock_schemas" do
field :title, :string
end
def changeset(data, attrs) do
data
|> cast(attrs, [:title])
|> dynamic_default(:title, fn _ -> "default" end)
end
end
describe "dynamic_default/3" do
test "sets the default value if the field is nil" do
changeset = MockSchema.changeset(%MockSchema{}, %{})
assert Ecto.Changeset.get_change(changeset, :title) == "default"
end
test "does not set the default value if the field is not nil" do
changeset = MockSchema.changeset(%MockSchema{}, %{title: "custom"})
assert Ecto.Changeset.get_change(changeset, :title) == "custom"
end
end
end