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
|
|
@ -14,6 +14,8 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
alias Mv.Membership
|
||||
|
||||
setup do
|
||||
system_actor = Mv.Helpers.SystemActor.get_system_actor()
|
||||
|
||||
# Create required custom fields for different types
|
||||
{:ok, required_string_field} =
|
||||
Membership.CustomField
|
||||
|
|
@ -22,7 +24,7 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
value_type: :string,
|
||||
required: true
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
{:ok, required_integer_field} =
|
||||
Membership.CustomField
|
||||
|
|
@ -31,7 +33,7 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
value_type: :integer,
|
||||
required: true
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
{:ok, required_boolean_field} =
|
||||
Membership.CustomField
|
||||
|
|
@ -40,7 +42,7 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
value_type: :boolean,
|
||||
required: true
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
{:ok, required_date_field} =
|
||||
Membership.CustomField
|
||||
|
|
@ -49,7 +51,7 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
value_type: :date,
|
||||
required: true
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
{:ok, required_email_field} =
|
||||
Membership.CustomField
|
||||
|
|
@ -58,7 +60,7 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
value_type: :email,
|
||||
required: true
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
{:ok, optional_field} =
|
||||
Membership.CustomField
|
||||
|
|
@ -67,7 +69,7 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
value_type: :string,
|
||||
required: false
|
||||
})
|
||||
|> Ash.create()
|
||||
|> Ash.create(actor: system_actor)
|
||||
|
||||
%{
|
||||
required_string_field: required_string_field,
|
||||
|
|
@ -75,7 +77,8 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
required_boolean_field: required_boolean_field,
|
||||
required_date_field: required_date_field,
|
||||
required_email_field: required_email_field,
|
||||
optional_field: optional_field
|
||||
optional_field: optional_field,
|
||||
actor: system_actor
|
||||
}
|
||||
end
|
||||
|
||||
|
|
@ -118,17 +121,23 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
email: "john@example.com"
|
||||
}
|
||||
|
||||
test "fails when required custom field is missing", %{required_string_field: field} do
|
||||
test "fails when required custom field is missing", %{
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} do
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, [])
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "fails when required string custom field has nil value",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Start with all required fields having valid values
|
||||
custom_field_values =
|
||||
|
|
@ -143,14 +152,17 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "fails when required string custom field has empty string value",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Start with all required fields having valid values
|
||||
custom_field_values =
|
||||
|
|
@ -165,14 +177,17 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "fails when required string custom field has whitespace-only value",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Start with all required fields having valid values
|
||||
custom_field_values =
|
||||
|
|
@ -187,14 +202,17 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "succeeds when required string custom field has valid value",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Start with all required fields having valid values, then update the string field
|
||||
custom_field_values =
|
||||
|
|
@ -209,12 +227,13 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "fails when required integer custom field has nil value",
|
||||
%{
|
||||
required_integer_field: field
|
||||
required_integer_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -228,14 +247,17 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "fails when required integer custom field has empty string value",
|
||||
%{
|
||||
required_integer_field: field
|
||||
required_integer_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -249,25 +271,29 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "succeeds when required integer custom field has zero value",
|
||||
%{
|
||||
required_integer_field: _field
|
||||
required_integer_field: _field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "succeeds when required integer custom field has positive value",
|
||||
%{
|
||||
required_integer_field: field
|
||||
required_integer_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -281,12 +307,13 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "fails when required boolean custom field has nil value",
|
||||
%{
|
||||
required_boolean_field: field
|
||||
required_boolean_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -300,25 +327,29 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "succeeds when required boolean custom field has false value",
|
||||
%{
|
||||
required_boolean_field: _field
|
||||
required_boolean_field: _field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "succeeds when required boolean custom field has true value",
|
||||
%{
|
||||
required_boolean_field: field
|
||||
required_boolean_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -332,12 +363,13 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "fails when required date custom field has nil value",
|
||||
%{
|
||||
required_date_field: field
|
||||
required_date_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -351,14 +383,17 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "fails when required date custom field has empty string value",
|
||||
%{
|
||||
required_date_field: field
|
||||
required_date_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -372,25 +407,29 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "succeeds when required date custom field has valid date value",
|
||||
%{
|
||||
required_date_field: _field
|
||||
required_date_field: _field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "fails when required email custom field has nil value",
|
||||
%{
|
||||
required_email_field: field
|
||||
required_email_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -404,14 +443,17 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "fails when required email custom field has empty string value",
|
||||
%{
|
||||
required_email_field: field
|
||||
required_email_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -425,27 +467,31 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
end
|
||||
|
||||
test "succeeds when required email custom field has valid email value",
|
||||
%{
|
||||
required_email_field: _field
|
||||
required_email_field: _field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "succeeds when multiple required custom fields are provided",
|
||||
%{
|
||||
required_string_field: string_field,
|
||||
required_integer_field: integer_field,
|
||||
required_boolean_field: boolean_field
|
||||
required_boolean_field: boolean_field,
|
||||
actor: actor
|
||||
} = context do
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context)
|
||||
|
|
@ -467,13 +513,14 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "fails when one of multiple required custom fields is missing",
|
||||
%{
|
||||
required_string_field: string_field,
|
||||
required_integer_field: integer_field
|
||||
required_integer_field: integer_field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Provide only string field, missing integer, boolean, and date
|
||||
custom_field_values =
|
||||
|
|
@ -487,22 +534,24 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} = Membership.create_member(attrs)
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.create_member(attrs, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ integer_field.name
|
||||
end
|
||||
|
||||
test "succeeds when optional custom field is missing", %{} = context do
|
||||
test "succeeds when optional custom field is missing", %{actor: actor} = context do
|
||||
# Provide all required fields, but no optional field
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
|
||||
test "succeeds when optional custom field has nil value",
|
||||
%{optional_field: field} = context do
|
||||
%{optional_field: field, actor: actor} = context do
|
||||
# Provide all required fields plus optional field with nil
|
||||
custom_field_values =
|
||||
all_required_custom_fields_with_defaults(context) ++
|
||||
|
|
@ -515,29 +564,33 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
attrs = Map.put(@valid_attrs, :custom_field_values, custom_field_values)
|
||||
|
||||
assert {:ok, _member} = Membership.create_member(attrs)
|
||||
assert {:ok, _member} = Membership.create_member(attrs, actor: actor)
|
||||
end
|
||||
end
|
||||
|
||||
describe "update_member with required custom fields" do
|
||||
test "fails when removing a required custom field value",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Create member with all required custom fields
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
{:ok, member} =
|
||||
Membership.create_member(%{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com",
|
||||
custom_field_values: custom_field_values
|
||||
})
|
||||
Membership.create_member(
|
||||
%{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com",
|
||||
custom_field_values: custom_field_values
|
||||
},
|
||||
actor: actor
|
||||
)
|
||||
|
||||
# Try to update without the required custom field
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.update_member(member, %{custom_field_values: []})
|
||||
Membership.update_member(member, %{custom_field_values: []}, actor: actor)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
|
|
@ -545,18 +598,22 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
test "fails when setting required custom field value to empty",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Create member with all required custom fields
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
{:ok, member} =
|
||||
Membership.create_member(%{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com",
|
||||
custom_field_values: custom_field_values
|
||||
})
|
||||
Membership.create_member(
|
||||
%{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com",
|
||||
custom_field_values: custom_field_values
|
||||
},
|
||||
actor: actor
|
||||
)
|
||||
|
||||
# Try to update with empty value for the string field
|
||||
updated_custom_field_values =
|
||||
|
|
@ -570,9 +627,13 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
end)
|
||||
|
||||
assert {:error, %Ash.Error.Invalid{errors: errors}} =
|
||||
Membership.update_member(member, %{
|
||||
custom_field_values: updated_custom_field_values
|
||||
})
|
||||
Membership.update_member(
|
||||
member,
|
||||
%{
|
||||
custom_field_values: updated_custom_field_values
|
||||
},
|
||||
actor: actor
|
||||
)
|
||||
|
||||
assert error_message(errors, :custom_field_values) =~ "Required custom fields missing"
|
||||
assert error_message(errors, :custom_field_values) =~ field.name
|
||||
|
|
@ -580,21 +641,25 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
|
||||
test "succeeds when updating required custom field to valid value",
|
||||
%{
|
||||
required_string_field: field
|
||||
required_string_field: field,
|
||||
actor: actor
|
||||
} = context do
|
||||
# Create member with all required custom fields
|
||||
custom_field_values = all_required_custom_fields_with_defaults(context)
|
||||
|
||||
{:ok, member} =
|
||||
Membership.create_member(%{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com",
|
||||
custom_field_values: custom_field_values
|
||||
})
|
||||
Membership.create_member(
|
||||
%{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com",
|
||||
custom_field_values: custom_field_values
|
||||
},
|
||||
actor: actor
|
||||
)
|
||||
|
||||
# Load existing custom field values to get their IDs
|
||||
{:ok, member_with_cfvs} = Ash.load(member, :custom_field_values)
|
||||
{:ok, member_with_cfvs} = Ash.load(member, :custom_field_values, actor: actor)
|
||||
|
||||
# Update with new valid value for the string field, using existing IDs
|
||||
updated_custom_field_values =
|
||||
|
|
@ -620,9 +685,13 @@ defmodule Mv.Membership.MemberRequiredCustomFieldsTest do
|
|||
end)
|
||||
|
||||
assert {:ok, _updated_member} =
|
||||
Membership.update_member(member, %{
|
||||
custom_field_values: updated_custom_field_values
|
||||
})
|
||||
Membership.update_member(
|
||||
member,
|
||||
%{
|
||||
custom_field_values: updated_custom_field_values
|
||||
},
|
||||
actor: actor
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue