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:
Moritz 2026-06-16 17:49:50 +02:00
parent 9aa5bdb6a7
commit 18fb954f73
19 changed files with 279 additions and 513 deletions

View file

@ -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
)