feat: conistent danger zone delete flow
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
e5a6003ace
commit
91cf7cca6a
19 changed files with 499 additions and 287 deletions
|
|
@ -9,6 +9,53 @@ defmodule MvWeb.MemberLive.FormErrorHandlingTest do
|
|||
|
||||
require Ash.Query
|
||||
|
||||
describe "danger zone on edit" do
|
||||
@tag :ui
|
||||
test "edit form shows Danger zone and delete button when user can destroy member", %{
|
||||
conn: conn
|
||||
} do
|
||||
system_actor = Mv.Helpers.SystemActor.get_system_actor()
|
||||
|
||||
{:ok, member} =
|
||||
Mv.Membership.create_member(
|
||||
%{first_name: "Delete", last_name: "FromEdit", email: "delete.from.edit@example.com"},
|
||||
actor: system_actor
|
||||
)
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, view, html} = live(conn, ~p"/members/#{member}/edit")
|
||||
|
||||
assert html =~ gettext("Danger zone")
|
||||
assert has_element?(view, "[data-testid='member-delete']")
|
||||
end
|
||||
|
||||
test "delete event from edit form removes member and redirects to /members", %{conn: conn} do
|
||||
system_actor = Mv.Helpers.SystemActor.get_system_actor()
|
||||
|
||||
{:ok, member} =
|
||||
Mv.Membership.create_member(
|
||||
%{
|
||||
first_name: "ToDelete",
|
||||
last_name: "FromForm",
|
||||
email: "todelete.from.form.#{System.unique_integer([:positive])}@example.com"
|
||||
},
|
||||
actor: system_actor
|
||||
)
|
||||
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, view, _html} = live(conn, ~p"/members/#{member}/edit")
|
||||
|
||||
view
|
||||
|> render_click("delete", %{"id" => member.id})
|
||||
|
||||
assert_redirect(view, ~p"/members")
|
||||
|
||||
refute Mv.Membership.Member
|
||||
|> Ash.Query.filter(id == ^member.id)
|
||||
|> Ash.exists?()
|
||||
end
|
||||
end
|
||||
|
||||
describe "tab visibility" do
|
||||
@tag :ui
|
||||
test "Payments tab is not visible on new member form", %{conn: conn} do
|
||||
|
|
|
|||
|
|
@ -135,14 +135,16 @@ defmodule MvWeb.MemberLive.ShowTest do
|
|||
end
|
||||
|
||||
describe "delete action" do
|
||||
test "renders Delete button when user can destroy member", %{
|
||||
test "renders Danger zone section and Delete button when user can destroy member", %{
|
||||
conn: conn,
|
||||
member: member
|
||||
} do
|
||||
conn = conn_with_oidc_user(conn)
|
||||
{:ok, view, _html} = live(conn, ~p"/members/#{member}")
|
||||
{:ok, view, html} = live(conn, ~p"/members/#{member}")
|
||||
|
||||
assert has_element?(view, "[data-testid='member-delete']")
|
||||
assert html =~ gettext("Danger zone")
|
||||
assert has_element?(view, "section[aria-labelledby='danger-zone-heading']")
|
||||
end
|
||||
|
||||
test "delete event removes member and redirects to index", %{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue