test: fix tests after join_date validation and UI changes

Update test to expect join_date validation error. Fix toggle button selector in cycle view test. Remove unnecessary cleanup from create_cycle helper.
This commit is contained in:
Moritz 2025-12-26 21:41:30 +01:00
parent 77ac3d1b18
commit 6f568bfe54
3 changed files with 9 additions and 12 deletions

View file

@ -49,9 +49,12 @@ defmodule Mv.Membership.MemberTest do
assert {:ok, _member} = Membership.create_member(attrs2) assert {:ok, _member} = Membership.create_member(attrs2)
end end
test "Join date can be in the future" do test "Join date cannot be in the future" do
attrs = Map.put(@valid_attrs, :join_date, Date.utc_today() |> Date.add(1)) attrs = Map.put(@valid_attrs, :join_date, Date.utc_today() |> Date.add(1))
assert {:ok, _member} = Membership.create_member(attrs)
assert {:error,
%Ash.Error.Invalid{errors: [%Ash.Error.Changes.InvalidAttribute{field: :join_date}]}} =
Membership.create_member(attrs)
end end
test "Exit date is optional but must not be before join date if both are specified" do test "Exit date is optional but must not be before join date if both are specified" do

View file

@ -42,15 +42,9 @@ defmodule MvWeb.MemberLive.Index.MembershipFeeStatusTest do
end end
# Helper to create a cycle # Helper to create a cycle
# Note: Does not delete existing cycles - tests should manage their own test data
# If cleanup is needed, it should be done in setup or explicitly in the test
defp create_cycle(member, fee_type, attrs) do defp create_cycle(member, fee_type, attrs) do
# Delete any auto-generated cycles first to avoid conflicts
existing_cycles =
MembershipFeeCycle
|> Ash.Query.filter(member_id == ^member.id)
|> Ash.read!()
Enum.each(existing_cycles, fn cycle -> Ash.destroy!(cycle) end)
default_attrs = %{ default_attrs = %{
cycle_start: ~D[2023-01-01], cycle_start: ~D[2023-01-01],
amount: Decimal.new("50.00"), amount: Decimal.new("50.00"),

View file

@ -644,9 +644,9 @@ defmodule MvWeb.MemberLive.IndexTest do
{:ok, view, _html} = live(conn, "/members?cycle_status_filter=paid") {:ok, view, _html} = live(conn, "/members?cycle_status_filter=paid")
# Toggle to current cycle - this should update URL and preserve filter # Toggle to current cycle - this should update URL and preserve filter
# Use the button in the membership fee status column header # Use the button in the toolbar
view view
|> element("button[phx-click='toggle_cycle_view'].btn-xs") |> element("button[phx-click='toggle_cycle_view']")
|> render_click() |> render_click()
# Wait for patch to complete # Wait for patch to complete