Add actor parameter to all tests requiring authorization
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit adds actor: system_actor to all Ash operations in tests that require authorization.
This commit is contained in:
parent
4c846f8bba
commit
a6cdeaa18d
75 changed files with 4649 additions and 2865 deletions
|
|
@ -21,6 +21,8 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
alias Mv.Membership.{CustomField, CustomFieldValue, Member}
|
||||
|
||||
setup do
|
||||
system_actor = Mv.Helpers.SystemActor.get_system_actor()
|
||||
|
||||
# Create test member
|
||||
{:ok, member} =
|
||||
Member
|
||||
|
|
@ -29,15 +31,16 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
last_name: "Anderson",
|
||||
email: "alice@example.com"
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
%{member: member}
|
||||
%{member: member, actor: system_actor}
|
||||
end
|
||||
|
||||
describe "custom fields section visibility (Issue #282)" do
|
||||
test "displays Custom Fields section even when member has no custom field values", %{
|
||||
conn: conn,
|
||||
member: member
|
||||
member: member,
|
||||
actor: actor
|
||||
} do
|
||||
# Create a custom field but no value for the member
|
||||
{:ok, custom_field} =
|
||||
|
|
@ -46,7 +49,7 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
name: "phone_mobile",
|
||||
value_type: :string
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, _view, html} = live(conn, ~p"/members/#{member}")
|
||||
|
|
@ -63,7 +66,8 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
|
||||
test "displays Custom Fields section with multiple custom fields, some without values", %{
|
||||
conn: conn,
|
||||
member: member
|
||||
member: member,
|
||||
actor: actor
|
||||
} do
|
||||
# Create multiple custom fields
|
||||
{:ok, field1} =
|
||||
|
|
@ -72,7 +76,7 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
name: "phone_mobile",
|
||||
value_type: :string
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
{:ok, field2} =
|
||||
CustomField
|
||||
|
|
@ -80,7 +84,7 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
name: "membership_number",
|
||||
value_type: :integer
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
# Create value only for first field
|
||||
{:ok, _cfv} =
|
||||
|
|
@ -90,7 +94,7 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
custom_field_id: field1.id,
|
||||
value: %{"_union_type" => "string", "_union_value" => "+49123456789"}
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, _view, html} = live(conn, ~p"/members/#{member}")
|
||||
|
|
@ -111,18 +115,19 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
|
||||
test "does not display Custom Fields section when no custom fields exist", %{
|
||||
conn: conn,
|
||||
member: member
|
||||
member: member,
|
||||
actor: actor
|
||||
} do
|
||||
# Ensure no custom fields exist for this test
|
||||
# This ensures test isolation even if previous tests created custom fields
|
||||
existing_custom_fields = Ash.read!(CustomField)
|
||||
existing_custom_fields = Ash.read!(CustomField, actor: actor)
|
||||
|
||||
for cf <- existing_custom_fields do
|
||||
Ash.destroy!(cf)
|
||||
Ash.destroy!(cf, actor: actor)
|
||||
end
|
||||
|
||||
# Verify no custom fields exist
|
||||
assert Ash.read!(CustomField) == []
|
||||
assert Ash.read!(CustomField, actor: actor) == []
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, _view, html} = live(conn, ~p"/members/#{member}")
|
||||
|
|
@ -133,14 +138,14 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
end
|
||||
|
||||
describe "custom field value formatting" do
|
||||
test "formats string custom field values", %{conn: conn, member: member} do
|
||||
test "formats string custom field values", %{conn: conn, member: member, actor: actor} do
|
||||
{:ok, custom_field} =
|
||||
CustomField
|
||||
|> Ash.Changeset.for_create(:create, %{
|
||||
name: "phone_mobile",
|
||||
value_type: :string
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
{:ok, _cfv} =
|
||||
CustomFieldValue
|
||||
|
|
@ -149,7 +154,7 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
custom_field_id: custom_field.id,
|
||||
value: %{"_union_type" => "string", "_union_value" => "+49123456789"}
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, _view, html} = live(conn, ~p"/members/#{member}")
|
||||
|
|
@ -157,14 +162,18 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
assert html =~ "+49123456789"
|
||||
end
|
||||
|
||||
test "formats email custom field values as mailto links", %{conn: conn, member: member} do
|
||||
test "formats email custom field values as mailto links", %{
|
||||
conn: conn,
|
||||
member: member,
|
||||
actor: actor
|
||||
} do
|
||||
{:ok, custom_field} =
|
||||
CustomField
|
||||
|> Ash.Changeset.for_create(:create, %{
|
||||
name: "private_email",
|
||||
value_type: :email
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
{:ok, _cfv} =
|
||||
CustomFieldValue
|
||||
|
|
@ -173,7 +182,7 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
custom_field_id: custom_field.id,
|
||||
value: %{"_union_type" => "email", "_union_value" => "private@example.com"}
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: actor)
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, _view, html} = live(conn, ~p"/members/#{member}")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue