Compare commits

..

7 commits

Author SHA1 Message Date
e8d440f74f formatting
All checks were successful
continuous-integration/drone/push Build is passing
2025-10-09 17:55:56 +02:00
bc5715e63e chore: updated translation 2025-10-09 17:55:56 +02:00
a15a46037f test: added tests 2025-10-09 17:55:56 +02:00
10df5f8bb9 docs: formatting, docs and accessibility fix 2025-10-09 17:55:56 +02:00
e280a28b8e feat: sort header for members list 2025-10-09 17:55:56 +02:00
e2c00f263e Merge pull request 'Fix error when deleting members' (#148) from fix-member-deletion into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #148
Reviewed-by: carla <carla@noreply.git.local-it.org>
2025-10-09 16:45:41 +02:00
7d2b719ca2
Fix error when deleting members
All checks were successful
continuous-integration/drone/push Build is passing
2025-10-09 16:42:44 +02:00
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

@ -28,7 +28,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)
@ -120,4 +121,31 @@ defmodule MvWeb.MemberLive.IndexTest do
assert state.socket.assigns.query == "Friedrich"
assert is_list(state.socket.assigns.members)
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