test: fix date dependencies in cycle generator tests
- Add create_member_with_cycles helper that uses fixed 'today' date - Update tests to use explicit 'today:' option instead of Date.utc_today() - Prevents test failures when current date changes (e.g., in 2026+) - Tests now explicitly delete and regenerate cycles with fixed dates - Ensures consistent test behavior regardless of execution date
This commit is contained in:
parent
0b986db635
commit
f7fc1f4897
3 changed files with 216 additions and 91 deletions
|
|
@ -63,20 +63,23 @@ defmodule Mv.MembershipFees.CycleGeneratorTest do
|
|||
setup_settings(true)
|
||||
fee_type = create_fee_type(%{interval: :yearly})
|
||||
|
||||
# Create member WITHOUT fee type first, then assign it
|
||||
# This avoids the auto-generation on create and gives us control
|
||||
# Create member WITHOUT fee type first to avoid auto-generation
|
||||
member =
|
||||
create_member_without_cycles(%{
|
||||
join_date: ~D[2022-03-15],
|
||||
membership_fee_start_date: ~D[2022-01-01]
|
||||
})
|
||||
|
||||
# Assign fee type, which will trigger auto-generation in test env
|
||||
# Assign fee type
|
||||
member =
|
||||
member
|
||||
|> Ash.Changeset.for_update(:update_member, %{membership_fee_type_id: fee_type.id})
|
||||
|> Ash.update!()
|
||||
|
||||
# Explicitly generate cycles with fixed "today" date to avoid date dependency
|
||||
today = ~D[2024-06-15]
|
||||
{:ok, _} = CycleGenerator.generate_cycles_for_member(member.id, today: today)
|
||||
|
||||
# Verify cycles were generated
|
||||
all_cycles = get_member_cycles(member.id)
|
||||
cycle_years = Enum.map(all_cycles, & &1.cycle_start.year) |> Enum.sort() |> Enum.uniq()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue