Fix error when deleting members

This commit is contained in:
Rafael Epplée 2025-08-21 14:18:01 +02:00
parent 96085ea420
commit d9aee4e126
No known key found for this signature in database
GPG key ID: B4EFE6DC59FAE118
3 changed files with 32 additions and 3 deletions

View file

@ -35,8 +35,8 @@ audit:
mix deps.audit
mix hex.audit
test: install-dependencies start-database
mix test
test *args: install-dependencies start-database
mix test {{args}}
format:
mix format

View file

@ -21,7 +21,8 @@ defmodule MvWeb.MemberLive.Index do
member = Ash.get!(Mv.Membership.Member, id)
Ash.destroy!(member)
{:noreply, stream_delete(socket, :members, member)}
updated_members = Enum.reject(socket.assigns.members, &(&1.id == id))
{:noreply, assign(socket, :members, updated_members)}
end
# Selects one member in the list of members

View file

@ -1,6 +1,7 @@
defmodule MvWeb.MemberLive.IndexTest do
use MvWeb.ConnCase, async: true
import Phoenix.LiveViewTest
require Ash.Query
test "shows translated title in German", %{conn: conn} do
conn = conn_with_oidc_user(conn)
@ -73,4 +74,31 @@ defmodule MvWeb.MemberLive.IndexTest do
assert has_element?(index_view, "#flash-group", "Member create successfully")
end
test "can delete a member without error", %{conn: conn} do
# Create a test member first
{:ok, member} =
Mv.Membership.create_member(%{
first_name: "Test",
last_name: "User",
email: "test@example.com"
})
conn = conn_with_oidc_user(conn)
{:ok, index_view, _html} = live(conn, "/members")
# Verify the member is displayed
assert has_element?(index_view, "#members", "Test User")
# Click the delete link for this member
index_view
|> element("a", "Delete")
|> render_click()
# Verify the member is no longer displayed
refute has_element?(index_view, "#members", "Test User")
# Verify the member was actually deleted from the database
assert not (Mv.Membership.Member |> Ash.Query.filter(id == ^member.id) |> Ash.exists?())
end
end