ash_postgres/test/ash_postgres_test.exs
2024-05-16 09:53:19 -05:00

43 lines
1.1 KiB
Elixir

defmodule AshPostgresTest do
use AshPostgres.RepoCase, async: false
test "transaction metadata is given to on_transaction_begin" do
AshPostgres.Test.Post
|> Ash.Changeset.for_create(:create, %{title: "title"})
|> Ash.create!()
assert_receive %{
type: :create,
metadata: %{action: :create, actor: nil, resource: AshPostgres.Test.Post}
}
end
test "filter policies are applied in create" do
assert_raise Ash.Error.Forbidden, fn ->
AshPostgres.Test.Post
|> Ash.Changeset.for_create(:create, %{title: "worst"}, authorize?: true)
|> Ash.create!()
end
end
test "filter policies are applied in update" do
post =
AshPostgres.Test.Post
|> Ash.Changeset.for_create(:create, %{title: "good"})
|> Ash.create!()
assert_raise Ash.Error.Forbidden, fn ->
post
|> Ash.Changeset.for_update(:update, %{title: "bad"},
authorize?: true,
actor: nil,
actor: %{id: Ash.UUID.generate()}
)
|> Ash.update!(
authorize?: true,
actor: nil
)
|> Map.get(:title)
end
end
end