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
|
|
@ -6,11 +6,11 @@ defmodule Mv.StatisticsTest do
|
|||
|
||||
require Ash.Query
|
||||
import Ash.Expr
|
||||
import Mv.Fixtures, only: [create_fee_type: 2]
|
||||
|
||||
alias Mv.Membership.Member
|
||||
alias Mv.MembershipFees
|
||||
alias Mv.MembershipFees.MembershipFeeCycle
|
||||
alias Mv.MembershipFees.MembershipFeeType
|
||||
alias Mv.Statistics
|
||||
|
||||
setup do
|
||||
|
|
@ -18,22 +18,6 @@ defmodule Mv.StatisticsTest do
|
|||
%{actor: actor}
|
||||
end
|
||||
|
||||
defp create_fee_type(actor, attrs) do
|
||||
MembershipFeeType
|
||||
|> Ash.Changeset.for_create(
|
||||
:create,
|
||||
Map.merge(
|
||||
%{
|
||||
name: "Test Fee #{System.unique_integer([:positive])}",
|
||||
amount: Decimal.new("50.00"),
|
||||
interval: :yearly
|
||||
},
|
||||
attrs
|
||||
)
|
||||
)
|
||||
|> Ash.create!(actor: actor)
|
||||
end
|
||||
|
||||
describe "first_join_year/1" do
|
||||
test "returns the year of the earliest join_date", %{actor: actor} do
|
||||
Mv.Fixtures.member_fixture(%{join_date: ~D[2019-03-15]})
|
||||
|
|
@ -131,7 +115,7 @@ defmodule Mv.StatisticsTest do
|
|||
end
|
||||
|
||||
test "returns totals by status for cycles in that year", %{actor: actor} do
|
||||
fee_type = create_fee_type(actor, %{amount: Decimal.new("50.00")})
|
||||
fee_type = create_fee_type(%{amount: Decimal.new("50.00")}, actor)
|
||||
|
||||
# Creating members with fee type triggers cycle generation (2020..today). We use 2024 cycles.
|
||||
_member1 =
|
||||
|
|
@ -171,8 +155,8 @@ defmodule Mv.StatisticsTest do
|
|||
test "when fee_type_id is passed in opts, returns only cycles of that fee type", %{
|
||||
actor: actor
|
||||
} do
|
||||
fee_type_a = create_fee_type(actor, %{amount: Decimal.new("30.00")})
|
||||
fee_type_b = create_fee_type(actor, %{amount: Decimal.new("70.00")})
|
||||
fee_type_a = create_fee_type(%{amount: Decimal.new("30.00")}, actor)
|
||||
fee_type_b = create_fee_type(%{amount: Decimal.new("70.00")}, actor)
|
||||
|
||||
_m1 =
|
||||
Mv.Fixtures.member_fixture(%{
|
||||
|
|
@ -207,7 +191,7 @@ defmodule Mv.StatisticsTest do
|
|||
end
|
||||
|
||||
test "returns sum of amount for all unpaid cycles", %{actor: actor} do
|
||||
fee_type = create_fee_type(actor, %{amount: Decimal.new("50.00")})
|
||||
fee_type = create_fee_type(%{amount: Decimal.new("50.00")}, actor)
|
||||
|
||||
_member =
|
||||
Mv.Fixtures.member_fixture(%{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue