test(membership-fees): share create_fee_type and create_cycle fixtures
Replace the create_fee_type/create_cycle helpers duplicated across 18/8 membership-fee test files with a single shared definition in Mv.Fixtures, reconciling the divergent local signatures (including the reversed argument order) into one superset so behavior is unchanged.
This commit is contained in:
parent
9aa5bdb6a7
commit
18fb954f73
19 changed files with 279 additions and 513 deletions
|
|
@ -7,49 +7,9 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
alias Mv.Membership
|
||||
alias Mv.Membership.CustomField
|
||||
alias Mv.Membership.CustomFieldValue
|
||||
alias Mv.MembershipFees.MembershipFeeCycle
|
||||
alias Mv.MembershipFees.MembershipFeeType
|
||||
alias MvWeb.MemberLive.Index, as: MemberIndex
|
||||
|
||||
# Helper to create a membership fee type (shared across all tests)
|
||||
defp create_fee_type(attrs, actor) do
|
||||
default_attrs = %{
|
||||
name: "Test Fee Type #{System.unique_integer([:positive])}",
|
||||
amount: Decimal.new("50.00"),
|
||||
interval: :yearly
|
||||
}
|
||||
|
||||
attrs = Map.merge(default_attrs, attrs)
|
||||
|
||||
MembershipFeeType
|
||||
|> Ash.Changeset.for_create(:create, attrs)
|
||||
|> Ash.create!(actor: actor)
|
||||
end
|
||||
|
||||
# Helper to create a cycle (shared across all tests)
|
||||
defp create_cycle(member, fee_type, attrs, actor) do
|
||||
# Delete any auto-generated cycles first to avoid conflicts
|
||||
existing_cycles =
|
||||
MembershipFeeCycle
|
||||
|> Ash.Query.filter(member_id == ^member.id)
|
||||
|> Ash.read!(actor: actor)
|
||||
|
||||
Enum.each(existing_cycles, fn cycle -> Ash.destroy!(cycle, actor: actor) end)
|
||||
|
||||
default_attrs = %{
|
||||
cycle_start: ~D[2023-01-01],
|
||||
amount: Decimal.new("50.00"),
|
||||
member_id: member.id,
|
||||
membership_fee_type_id: fee_type.id,
|
||||
status: :unpaid
|
||||
}
|
||||
|
||||
attrs = Map.merge(default_attrs, attrs)
|
||||
|
||||
MembershipFeeCycle
|
||||
|> Ash.Changeset.for_create(:create, attrs)
|
||||
|> Ash.create!(actor: actor)
|
||||
end
|
||||
import Mv.Fixtures, only: [create_fee_type: 2, create_cycle: 4]
|
||||
|
||||
describe "desktop layout: scroll container and sticky table header" do
|
||||
@describetag :ui
|
||||
|
|
@ -1110,7 +1070,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
paid_member,
|
||||
fee_type,
|
||||
%{cycle_start: last_year_start, status: :paid},
|
||||
%{cycle_start: last_year_start, status: :paid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1127,7 +1087,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
unpaid_member,
|
||||
fee_type,
|
||||
%{cycle_start: last_year_start, status: :unpaid},
|
||||
%{cycle_start: last_year_start, status: :unpaid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1157,7 +1117,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
paid_member,
|
||||
fee_type,
|
||||
%{cycle_start: last_year_start, status: :paid},
|
||||
%{cycle_start: last_year_start, status: :paid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1174,7 +1134,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
unpaid_member,
|
||||
fee_type,
|
||||
%{cycle_start: last_year_start, status: :unpaid},
|
||||
%{cycle_start: last_year_start, status: :unpaid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1204,7 +1164,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
paid_member,
|
||||
fee_type,
|
||||
%{cycle_start: current_year_start, status: :paid},
|
||||
%{cycle_start: current_year_start, status: :paid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1221,7 +1181,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
unpaid_member,
|
||||
fee_type,
|
||||
%{cycle_start: current_year_start, status: :unpaid},
|
||||
%{cycle_start: current_year_start, status: :unpaid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1251,7 +1211,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
paid_member,
|
||||
fee_type,
|
||||
%{cycle_start: current_year_start, status: :paid},
|
||||
%{cycle_start: current_year_start, status: :paid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -1268,7 +1228,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
unpaid_member,
|
||||
fee_type,
|
||||
%{cycle_start: current_year_start, status: :unpaid},
|
||||
%{cycle_start: current_year_start, status: :unpaid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -2196,7 +2156,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
member_paid_true,
|
||||
fee_type,
|
||||
%{cycle_start: last_year_start, status: :paid},
|
||||
%{cycle_start: last_year_start, status: :paid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
@ -2224,7 +2184,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
create_cycle(
|
||||
member_unpaid_true,
|
||||
fee_type,
|
||||
%{cycle_start: last_year_start, status: :unpaid},
|
||||
%{cycle_start: last_year_start, status: :unpaid, replace_existing: true},
|
||||
system_actor
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue