+
<.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