mirror of
https://github.com/ash-project/ash.git
synced 2024-09-19 13:03:02 +12:00
fix: fix seed not working when :__keep_nil__ is generated using seed_input (#1228)
This commit is contained in:
parent
4d35117649
commit
9c32eab87e
2 changed files with 17 additions and 2 deletions
|
@ -87,7 +87,7 @@ defmodule Ash.Seed do
|
|||
record
|
||||
|> Map.take(attrs)
|
||||
|> Map.new(fn {key, value} ->
|
||||
if value == :__keep_nil do
|
||||
if value == :__keep_nil__ do
|
||||
{key, nil}
|
||||
else
|
||||
{key, value}
|
||||
|
@ -111,9 +111,19 @@ defmodule Ash.Seed do
|
|||
end
|
||||
|
||||
def seed!(resource, input) when is_map(input) do
|
||||
attr_input =
|
||||
input
|
||||
|> Map.new(fn {key, value} ->
|
||||
if value == :__keep_nil__ do
|
||||
{key, nil}
|
||||
else
|
||||
{key, value}
|
||||
end
|
||||
end)
|
||||
|
||||
resource
|
||||
|> Ash.Changeset.new()
|
||||
|> change_attributes(input)
|
||||
|> change_attributes(attr_input)
|
||||
|> change_relationships(input)
|
||||
|> Ash.Changeset.set_defaults(:create, true)
|
||||
|> create_via_data_layer()
|
||||
|
|
|
@ -285,6 +285,11 @@ defmodule Ash.Test.GeneratorTest do
|
|||
test "it seeds correctly a resource" do
|
||||
assert %Author{} = Ash.Generator.seed!(Author, @meta_generator)
|
||||
end
|
||||
|
||||
test "it works with the value :__keep_nil__" do
|
||||
assert %Author{metadata: nil} =
|
||||
Ash.Generator.seed!(Author, %{meta: %{}, metadata: keep_nil()})
|
||||
end
|
||||
end
|
||||
|
||||
describe "built in generators" do
|
||||
|
|
Loading…
Reference in a new issue