From d9b659e5ea36d2a3d438c4e3e589c0ebdaeda86d Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 19 Jan 2026 14:09:19 +0100 Subject: [PATCH] fix: linting + tests --- lib/mv_web/components/layouts/sidebar.ex | 2 +- lib/mv_web/live/member_live/form.ex | 8 ++++++-- priv/repo/seeds.exs | 4 ++-- test/mv_web/member_live/form_error_handling_test.exs | 3 +++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/mv_web/components/layouts/sidebar.ex b/lib/mv_web/components/layouts/sidebar.ex index 33319d4..c464b66 100644 --- a/lib/mv_web/components/layouts/sidebar.ex +++ b/lib/mv_web/components/layouts/sidebar.ex @@ -81,7 +81,7 @@ defmodule MvWeb.Layouts.Sidebar do icon="hero-currency-euro" label={gettext("Fee Types")} /> - + <.menu_group icon="hero-cog-6-tooth" label={gettext("Administration")}> <.menu_subitem href={~p"/users"} label={gettext("Users")} /> diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex index d384a45..b319fa1 100644 --- a/lib/mv_web/live/member_live/form.ex +++ b/lib/mv_web/live/member_live/form.ex @@ -375,7 +375,9 @@ defmodule MvWeb.MemberLive.Form do [error | _] -> # Try to extract message from other error types case error do - %{message: message} when is_binary(message) -> message + %{message: message} when is_binary(message) -> + message + error when is_struct(error) -> # Try to use Ash.ErrorKind protocol if available try do @@ -383,7 +385,9 @@ defmodule MvWeb.MemberLive.Form do rescue Protocol.UndefinedError -> gettext("Failed to save member. Please try again.") end - _ -> gettext("Failed to save member. Please try again.") + + _ -> + gettext("Failed to save member. Please try again.") end _ -> diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index 6294353..2e7543a 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -166,7 +166,7 @@ case Accounts.User # User already exists (e.g., via OIDC) - assign admin role existing_admin_user |> Ash.Changeset.for_update(:update, %{}) - |> Ash.Changeset.manage_relationship(:role, admin_role, type: :replace) + |> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove) |> Ash.update!() {:ok, nil} -> @@ -177,7 +177,7 @@ case Accounts.User |> then(fn user -> user |> Ash.Changeset.for_update(:update, %{}) - |> Ash.Changeset.manage_relationship(:role, admin_role, type: :replace) + |> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove) |> Ash.update!() end) diff --git a/test/mv_web/member_live/form_error_handling_test.exs b/test/mv_web/member_live/form_error_handling_test.exs index 4f76fca..859402e 100644 --- a/test/mv_web/member_live/form_error_handling_test.exs +++ b/test/mv_web/member_live/form_error_handling_test.exs @@ -39,6 +39,7 @@ defmodule MvWeb.MemberLive.FormErrorHandlingTest do # Should show flash error message assert has_element?(view, "#flash-group") + assert html =~ "error" or html =~ "Error" or html =~ "Fehler" or html =~ "failed" or html =~ "fehlgeschlagen" or html =~ "Validation failed" or html =~ "Validierung fehlgeschlagen" @@ -64,6 +65,7 @@ defmodule MvWeb.MemberLive.FormErrorHandlingTest do # Should show flash error message assert has_element?(view, "#flash-group") + assert html =~ "error" or html =~ "Error" or html =~ "Fehler" or html =~ "failed" or html =~ "fehlgeschlagen" or html =~ "Validation failed" or html =~ "Validierung fehlgeschlagen" or @@ -108,6 +110,7 @@ defmodule MvWeb.MemberLive.FormErrorHandlingTest do # Should show flash error message assert has_element?(view, "#flash-group") + assert html =~ "error" or html =~ "Error" or html =~ "Fehler" or html =~ "failed" or html =~ "fehlgeschlagen" or html =~ "Validation failed" or html =~ "Validierung fehlgeschlagen"