diff --git a/test/mv_web/member_live/show_membership_fees_test.exs b/test/mv_web/member_live/show_membership_fees_test.exs index 9faaa13..fd4d675 100644 --- a/test/mv_web/member_live/show_membership_fees_test.exs +++ b/test/mv_web/member_live/show_membership_fees_test.exs @@ -219,7 +219,21 @@ defmodule MvWeb.MemberLive.ShowMembershipFeesTest do describe "cycle regeneration" do test "manual regeneration works", %{conn: conn} do fee_type = create_fee_type(%{interval: :yearly}) - member = create_member(%{membership_fee_type_id: fee_type.id}) + # Create member without fee type first, then assign it to avoid auto-generation + member = create_member(%{}) + + # Delete any auto-generated cycles + existing_cycles = Ash.read!(MembershipFeeCycle |> Ash.Query.filter(member_id == ^member.id)) + Enum.each(existing_cycles, fn cycle -> Ash.destroy!(cycle) end) + + # Now assign fee type + member + |> Ash.Changeset.for_update(:update_member, %{membership_fee_type_id: fee_type.id}, domain: Mv.Membership) + |> Ash.update!(domain: Mv.Membership) + + # Delete any auto-generated cycles again + existing_cycles = Ash.read!(MembershipFeeCycle |> Ash.Query.filter(member_id == ^member.id)) + Enum.each(existing_cycles, fn cycle -> Ash.destroy!(cycle) end) {:ok, view, _html} = live(conn, "/members/#{member.id}") @@ -233,6 +247,9 @@ defmodule MvWeb.MemberLive.ShowMembershipFeesTest do |> element("button[phx-click='regenerate_cycles']") |> render_click() + # Wait a bit for async processing + Process.sleep(100) + # Should have cycles generated cycles = MembershipFeeCycle