test: add Member resource policy tests
This commit is contained in:
parent
22d50d6c46
commit
93190d558f
3 changed files with 446 additions and 10 deletions
|
|
@ -13,16 +13,25 @@ defmodule Mv.Authorization.Checks.HasPermissionTest do
|
|||
defp create_authorizer(resource, action) do
|
||||
%Ash.Policy.Authorizer{
|
||||
resource: resource,
|
||||
subject: %{action: %{name: action}}
|
||||
subject: %{
|
||||
action: %{type: action},
|
||||
data: nil
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
# Helper to create actor with role
|
||||
defp create_actor(id, permission_set_name) do
|
||||
%{
|
||||
defp create_actor(id, permission_set_name, opts \\ []) do
|
||||
actor = %{
|
||||
id: id,
|
||||
role: %{permission_set_name: permission_set_name}
|
||||
}
|
||||
|
||||
# Add member_id if provided (needed for :linked scope tests)
|
||||
case Keyword.get(opts, :member_id) do
|
||||
nil -> actor
|
||||
member_id -> Map.put(actor, :member_id, member_id)
|
||||
end
|
||||
end
|
||||
|
||||
describe "describe/1" do
|
||||
|
|
@ -120,7 +129,7 @@ defmodule Mv.Authorization.Checks.HasPermissionTest do
|
|||
|
||||
describe "auto_filter/3 - Scope :linked" do
|
||||
test "scope :linked for Member returns user_id filter" do
|
||||
user = create_actor("user-123", "own_data")
|
||||
user = create_actor("user-123", "own_data", member_id: "member-456")
|
||||
authorizer = create_authorizer(Mv.Membership.Member, :read)
|
||||
|
||||
filter = HasPermission.auto_filter(user, authorizer, [])
|
||||
|
|
@ -130,7 +139,7 @@ defmodule Mv.Authorization.Checks.HasPermissionTest do
|
|||
end
|
||||
|
||||
test "scope :linked for CustomFieldValue returns member.user_id filter" do
|
||||
user = create_actor("user-123", "own_data")
|
||||
user = create_actor("user-123", "own_data", member_id: "member-456")
|
||||
authorizer = create_authorizer(Mv.Membership.CustomFieldValue, :update)
|
||||
|
||||
filter = HasPermission.auto_filter(user, authorizer, [])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue