mirror of
https://github.com/ash-project/ash_postgres.git
synced 2024-09-21 05:53:18 +12:00
43 lines
1.1 KiB
Elixir
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
|