Tests: restore settings in on_exit to avoid leftover state

Setup + on_exit save/restore member_field_visibility and
member_field_required in member, setting, index_component and
form_error_handling tests.
This commit is contained in:
Moritz 2026-02-23 22:50:01 +01:00
parent 50c4ab049d
commit e9ed61a8fd
Signed by: moritz
GPG key ID: 1020A035E5DD0824
4 changed files with 68 additions and 36 deletions

View file

@ -84,6 +84,23 @@ defmodule MvWeb.MemberFieldLive.IndexComponentTest do
end
describe "required fields" do
setup do
{:ok, settings} = Membership.get_settings()
saved_visibility = settings.member_field_visibility || %{}
saved_required = settings.member_field_required || %{}
on_exit(fn ->
{:ok, s} = Membership.get_settings()
Membership.update_settings(s, %{
member_field_visibility: saved_visibility,
member_field_required: saved_required
})
end)
:ok
end
test "marks email as required (always from settings)", %{conn: conn} do
{:ok, _view, html} = live(conn, ~p"/settings")
@ -107,15 +124,6 @@ defmodule MvWeb.MemberFieldLive.IndexComponentTest do
# First name row should show Required (and Optional for others)
assert html =~ "First name" or html =~ "first_name"
assert html =~ "Required"
# Reset
{:ok, settings} = Membership.get_settings()
Membership.update_single_member_field(settings,
field: "first_name",
show_in_overview: true,
required: false
)
end
test "optional fields show Optional when not required in settings", %{conn: conn} do

View file

@ -9,6 +9,23 @@ defmodule MvWeb.MemberLive.FormErrorHandlingTest do
require Ash.Query
describe "error handling - flash messages" do
setup do
{:ok, settings} = Mv.Membership.get_settings()
saved_visibility = settings.member_field_visibility || %{}
saved_required = settings.member_field_required || %{}
on_exit(fn ->
{:ok, s} = Mv.Membership.get_settings()
Mv.Membership.update_settings(s, %{
member_field_visibility: saved_visibility,
member_field_required: saved_required
})
end)
:ok
end
@describetag :ui
test "shows flash message when member creation fails with validation error", %{conn: conn} do
system_actor = Mv.Helpers.SystemActor.get_system_actor()
@ -102,15 +119,6 @@ defmodule MvWeb.MemberLive.FormErrorHandlingTest do
assert html =~ "error" or html =~ "Error" or html =~ "Fehler" or
html =~ "first_name" or html =~ "First name" or html =~ "can't be blank" or
html =~ "darf nicht leer sein"
# Reset settings
{:ok, settings} = Mv.Membership.get_settings()
Mv.Membership.update_single_member_field(settings,
field: "first_name",
show_in_overview: true,
required: false
)
end
test "shows flash message when member update fails", %{conn: conn} do