diff --git a/lib/mv_web/live/member_live/show/membership_fees_component.ex b/lib/mv_web/live/member_live/show/membership_fees_component.ex index 34495ae..0739b5e 100644 --- a/lib/mv_web/live/member_live/show/membership_fees_component.ex +++ b/lib/mv_web/live/member_live/show/membership_fees_component.ex @@ -53,7 +53,7 @@ defmodule MvWeb.MemberLive.Show.MembershipFeesComponent do <%!-- Action Buttons (only when user has permission) --%>
<.button - :if={@can_create_cycle} + :if={@member.membership_fee_type != nil and @can_create_cycle} phx-click="regenerate_cycles" phx-target={@myself} class={["btn btn-sm btn-outline", if(@regenerating, do: "btn-disabled", else: "")]} 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 1f447b8..57abfd1 100644 --- a/test/mv_web/member_live/show_membership_fees_test.exs +++ b/test/mv_web/member_live/show_membership_fees_test.exs @@ -117,13 +117,23 @@ defmodule MvWeb.MemberLive.ShowMembershipFeesTest do assert html =~ "Yearly Type" end - test "shows no type message when no type assigned", %{conn: conn} do + test "shows no type message when no type assigned and Regenerate Cycles button is hidden", %{ + conn: conn + } do member = Mv.Fixtures.member_fixture(%{}) - {:ok, _view, html} = live(conn, "/members/#{member.id}") + {:ok, view, html} = live(conn, "/members/#{member.id}") # Should show message about no type assigned assert html =~ "No membership fee type assigned" || html =~ "No type" + + # Switch to membership fees tab: message and no Regenerate Cycles button + view + |> element("button[phx-click='switch_tab'][phx-value-tab='membership_fees']") + |> render_click() + + refute has_element?(view, "button[phx-click='regenerate_cycles']"), + "Regenerate Cycles should be hidden when no membership fee type is assigned" end end