diff --git a/lib/mv_web/live/member_live/index.html.heex b/lib/mv_web/live/member_live/index.html.heex index 9a1e94f..480f2bd 100644 --- a/lib/mv_web/live/member_live/index.html.heex +++ b/lib/mv_web/live/member_live/index.html.heex @@ -42,23 +42,34 @@ cycle_status_filter={@cycle_status_filter} member_count={length(@members)} /> -
- -
+ <.live_component module={MvWeb.Components.FieldVisibilityDropdownComponent} id="field-visibility-dropdown" diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index bbb6bc3..97eb136 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -186,7 +186,10 @@ Enum.with_index(member_attrs_list) member_attrs_with_fee_type = Map.put(member_attrs, :membership_fee_type_id, fee_type.id) # Use upsert to prevent duplicates based on email - Membership.create_member!(member_attrs_with_fee_type, upsert?: true, upsert_identity: :unique_email) + Membership.create_member!(member_attrs_with_fee_type, + upsert?: true, + upsert_identity: :unique_email + ) end) # Create additional users for user-member linking examples @@ -249,7 +252,9 @@ Enum.with_index(linked_members) # Start from where previous members ended fee_type_index = rem(length(member_attrs_list) + index, length(all_fee_types)) fee_type = Enum.at(all_fee_types, fee_type_index) - member_attrs_with_fee_type = Map.put(member_attrs_without_user, :membership_fee_type_id, fee_type.id) + + member_attrs_with_fee_type = + Map.put(member_attrs_without_user, :membership_fee_type_id, fee_type.id) # Check if user already has a member if user.member_id == nil do diff --git a/test/seeds_test.exs b/test/seeds_test.exs index b4d887c..8075078 100644 --- a/test/seeds_test.exs +++ b/test/seeds_test.exs @@ -42,5 +42,41 @@ defmodule Mv.SeedsTest do assert length(custom_fields_count_1) == length(custom_fields_count_2), "CustomFields count should remain same after re-running seeds" end + + test "all members have membership fee type assigned" do + # Run the seeds script + assert Code.eval_file("priv/repo/seeds.exs") + + # Get all members + {:ok, members} = Ash.read(Mv.Membership.Member) + + # All members should have a membership_fee_type_id + Enum.each(members, fn member -> + assert member.membership_fee_type_id != nil, + "Member #{member.first_name} #{member.last_name} should have a membership fee type assigned" + end) + end + + test "each membership fee type has at least one member" do + # Run the seeds script + assert Code.eval_file("priv/repo/seeds.exs") + + # Get all fee types and members + {:ok, fee_types} = Ash.read(Mv.MembershipFees.MembershipFeeType) + {:ok, members} = Ash.read(Mv.Membership.Member) + + # Group members by fee type + members_by_fee_type = + members + |> Enum.group_by(& &1.membership_fee_type_id) + + # Each fee type should have at least one member + Enum.each(fee_types, fn fee_type -> + members_for_type = Map.get(members_by_fee_type, fee_type.id, []) + + assert length(members_for_type) > 0, + "Membership fee type #{fee_type.name} should have at least one member assigned" + end) + end end end