ash/test/resource/changes/load_test.exs

50 lines
950 B
Elixir

defmodule Ash.Test.Resource.Changes.LoadTest do
@moduledoc false
use ExUnit.Case, async: true
defmodule Post do
@moduledoc false
use Ash.Resource,
data_layer: Ash.DataLayer.Ets
attributes do
uuid_primary_key :id
attribute :text, :string
attribute :second_text, :string
end
actions do
defaults [:read, :update, :destroy]
create :create do
change load(:full_text)
end
end
calculations do
calculate :full_text, :string, concat([:text, :second_text])
end
end
defmodule Registry do
@moduledoc false
use Ash.Registry
entries do
entry Post
end
end
defmodule Api do
use Ash.Api
resources do
registry Registry
end
end
test "you can use it to load on create" do
assert Api.create!(Ash.Changeset.for_create(Post, :create, text: "foo", second_text: "bar")).full_text ==
"foobar"
end
end