Add dialyzer and resolve all findings closes #503 #504 #514 #516

Merged
moritz merged 16 commits from issue/mitgliederverwaltung-514 into main 2026-06-02 13:15:00 +02:00
2 changed files with 23 additions and 1 deletions
Showing only changes of commit ec6422d450 - Show all commits

View file

@ -1027,7 +1027,7 @@ defmodule MvWeb.MemberLive.Show.MembershipFeesComponent do
|> assign(:create_cycle_error, format_error(error))}
end
else
:error ->
{:error, reason} when reason in [:invalid_format, :invalid_date, :incompatible_calendars] ->
{:noreply,
socket
|> assign(:create_cycle_error, gettext("Invalid date format"))}

View file

@ -268,6 +268,28 @@ defmodule MvWeb.MemberLive.ShowMembershipFeesTest do
# Should not crash
assert html =~ member.first_name
end
test "create_cycle with an unparseable date shows an error instead of crashing", %{conn: conn} do
fee_type = create_fee_type(%{interval: :yearly})
member = Mv.Fixtures.member_fixture(%{membership_fee_type_id: fee_type.id})
{:ok, view, _html} = live(conn, "/members/#{member.id}")
view
|> element("button[phx-click='switch_tab'][phx-value-tab='membership_fees']")
|> render_click()
view
|> element("button[phx-click='open_create_cycle_modal']")
|> render_click()
html =
view
|> element("form[phx-submit='create_cycle']")
|> render_submit(%{"date" => "not-a-date", "amount" => "10"})
assert html =~ "Invalid date format"
end
end
describe "read_only user (Vorstand/Buchhaltung) - no cycle action buttons" do