Fix error when deleting members
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
e0d40014a1
commit
96c5b956e5
3 changed files with 32 additions and 3 deletions
4
Justfile
4
Justfile
|
|
@ -35,8 +35,8 @@ audit:
|
||||||
mix deps.audit
|
mix deps.audit
|
||||||
mix hex.audit
|
mix hex.audit
|
||||||
|
|
||||||
test: install-dependencies start-database
|
test *args: install-dependencies start-database
|
||||||
mix test
|
mix test {{args}}
|
||||||
|
|
||||||
format:
|
format:
|
||||||
mix format
|
mix format
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,8 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
member = Ash.get!(Mv.Membership.Member, id)
|
member = Ash.get!(Mv.Membership.Member, id)
|
||||||
Ash.destroy!(member)
|
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
|
end
|
||||||
|
|
||||||
# Selects one member in the list of members
|
# Selects one member in the list of members
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
defmodule MvWeb.MemberLive.IndexTest do
|
defmodule MvWeb.MemberLive.IndexTest do
|
||||||
use MvWeb.ConnCase, async: true
|
use MvWeb.ConnCase, async: true
|
||||||
import Phoenix.LiveViewTest
|
import Phoenix.LiveViewTest
|
||||||
|
require Ash.Query
|
||||||
|
|
||||||
test "shows translated title in German", %{conn: conn} do
|
test "shows translated title in German", %{conn: conn} do
|
||||||
conn = conn_with_oidc_user(conn)
|
conn = conn_with_oidc_user(conn)
|
||||||
|
|
@ -85,4 +86,31 @@ defmodule MvWeb.MemberLive.IndexTest do
|
||||||
assert state.socket.assigns.query == "Friedrich"
|
assert state.socket.assigns.query == "Friedrich"
|
||||||
assert is_list(state.socket.assigns.members)
|
assert is_list(state.socket.assigns.members)
|
||||||
end
|
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
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue