Fix failing tests

This commit is contained in:
Moritz 2025-12-16 16:30:05 +01:00
parent 128c712dbc
commit 42fd8663aa
Signed by: moritz
GPG key ID: 1020A035E5DD0824
4 changed files with 34 additions and 37 deletions

View file

@ -93,15 +93,13 @@ defmodule MvWeb.MemberLive.FormMembershipFeeTypeTest do
member = create_member(%{membership_fee_type_id: yearly_type.id})
{:ok, view, _html} = live(conn, "/members/#{member.id}/edit")
{:ok, _view, html} = live(conn, "/members/#{member.id}/edit")
# Try to select monthly type (should show warning)
html =
view
|> form("form", %{"member[membership_fee_type_id]" => monthly_type.id})
|> render_change()
# Monthly type should not be in the dropdown (filtered by interval)
refute html =~ monthly_type.id
assert html =~ "Warning" || html =~ "Warnung" || html =~ "not allowed"
# Only yearly types should be available
assert html =~ yearly_type.id
end
test "warning cleared if same interval selected", %{conn: conn} do
@ -115,7 +113,7 @@ defmodule MvWeb.MemberLive.FormMembershipFeeTypeTest do
# Select another yearly type (should not show warning)
html =
view
|> form("form", %{"member[membership_fee_type_id]" => yearly_type2.id})
|> form("#member-form", %{"member[membership_fee_type_id]" => yearly_type2.id})
|> render_change()
refute html =~ "Warning" || html =~ "Warnung"
@ -135,7 +133,7 @@ defmodule MvWeb.MemberLive.FormMembershipFeeTypeTest do
{:error, {:live_redirect, %{to: _to}}} =
view
|> form("form", form_data)
|> form("#member-form", form_data)
|> render_submit()
# Verify member was created with fee type
@ -151,7 +149,9 @@ defmodule MvWeb.MemberLive.FormMembershipFeeTypeTest do
# Set default fee type in settings
fee_type = create_fee_type(%{interval: :yearly})
Mv.Membership.Setting
{:ok, settings} = Mv.Membership.get_settings()
settings
|> Ash.Changeset.for_update(:update_membership_fee_settings, %{
default_membership_fee_type_id: fee_type.id
})

View file

@ -118,9 +118,9 @@ defmodule MvWeb.MemberLive.IndexMembershipFeeStatusTest do
{:ok, view, _html} = live(conn, "/members")
# Toggle to current cycle
# Toggle to current cycle (use the button in the header, not the one in the column)
view
|> element("button[phx-click='toggle_current_cycle']")
|> element("button[phx-click='toggle_cycle_view'].btn-sm")
|> render_click()
html = render(view)
@ -179,11 +179,11 @@ defmodule MvWeb.MemberLive.IndexMembershipFeeStatusTest do
fee_type = create_fee_type(%{interval: :yearly})
# Member with unpaid last cycle
member1 = create_member(%{membership_fee_type_id: fee_type.id})
member1 = create_member(%{first_name: "UnpaidMember", membership_fee_type_id: fee_type.id})
create_cycle(member1, fee_type, %{cycle_start: ~D[2023-01-01], status: :unpaid})
# Member with paid last cycle
member2 = create_member(%{membership_fee_type_id: fee_type.id})
member2 = create_member(%{first_name: "PaidMember", membership_fee_type_id: fee_type.id})
create_cycle(member2, fee_type, %{cycle_start: ~D[2023-01-01], status: :paid})
# Verify cycles exist in database
@ -197,14 +197,13 @@ defmodule MvWeb.MemberLive.IndexMembershipFeeStatusTest do
|> Ash.Query.filter(member_id == ^member2.id)
|> Ash.read!()
assert length(cycles1) > 0
assert length(cycles2) > 0
refute Enum.empty?(cycles1)
refute Enum.empty?(cycles2)
{:ok, view, _html} = live(conn, "/members?membership_fee_filter=unpaid_last")
{:ok, _view, html} = live(conn, "/members?membership_fee_filter=unpaid_last")
html = render(view)
assert html =~ member1.first_name
refute html =~ member2.first_name
assert html =~ "UnpaidMember"
refute html =~ "PaidMember"
end
test "filter unpaid in current cycle works", %{conn: conn} do
@ -214,11 +213,11 @@ defmodule MvWeb.MemberLive.IndexMembershipFeeStatusTest do
current_year_start = %{today | month: 1, day: 1}
# Member with unpaid current cycle
member1 = create_member(%{membership_fee_type_id: fee_type.id})
member1 = create_member(%{first_name: "UnpaidCurrent", membership_fee_type_id: fee_type.id})
create_cycle(member1, fee_type, %{cycle_start: current_year_start, status: :unpaid})
# Member with paid current cycle
member2 = create_member(%{membership_fee_type_id: fee_type.id})
member2 = create_member(%{first_name: "PaidCurrent", membership_fee_type_id: fee_type.id})
create_cycle(member2, fee_type, %{cycle_start: current_year_start, status: :paid})
# Verify cycles exist in database
@ -232,14 +231,13 @@ defmodule MvWeb.MemberLive.IndexMembershipFeeStatusTest do
|> Ash.Query.filter(member_id == ^member2.id)
|> Ash.read!()
assert length(cycles1) > 0
assert length(cycles2) > 0
refute Enum.empty?(cycles1)
refute Enum.empty?(cycles2)
{:ok, view, _html} = live(conn, "/members?membership_fee_filter=unpaid_current")
{:ok, _view, html} = live(conn, "/members?membership_fee_filter=unpaid_current")
html = render(view)
assert html =~ member1.first_name
refute html =~ member2.first_name
assert html =~ "UnpaidCurrent"
refute html =~ "PaidCurrent"
end
end