From ee6bfbacbbb85e33518da5645fd5923d882ca7a1 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 3 Feb 2026 17:16:13 +0100 Subject: [PATCH] User LiveViews: row_id and data-testid for actions Table row_id for scoped selectors; data-testid on New/Edit/Delete. --- lib/mv_web/live/user_live/index.html.heex | 14 +++++++++++--- lib/mv_web/live/user_live/show.ex | 6 +++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/mv_web/live/user_live/index.html.heex b/lib/mv_web/live/user_live/index.html.heex index dcb2e83..cb945e2 100644 --- a/lib/mv_web/live/user_live/index.html.heex +++ b/lib/mv_web/live/user_live/index.html.heex @@ -3,14 +3,19 @@ {gettext("Listing Users")} <:actions> <%= if can?(@current_user, :create, Mv.Accounts.User) do %> - <.button variant="primary" navigate={~p"/users/new"}> + <.button variant="primary" navigate={~p"/users/new"} data-testid="user-new"> <.icon name="hero-plus" /> {gettext("New User")} <% end %> - <.table id="users" rows={@users} row_click={fn user -> JS.navigate(~p"/users/#{user}") end}> + <.table + id="users" + rows={@users} + row_id={fn user -> "row-#{user.id}" end} + row_click={fn user -> JS.navigate(~p"/users/#{user}") end} + > <:col :let={user} label={ @@ -65,7 +70,9 @@ <%= if can?(@current_user, :update, user) do %> - <.link navigate={~p"/users/#{user}/edit"}>{gettext("Edit")} + <.link navigate={~p"/users/#{user}/edit"} data-testid="user-edit"> + {gettext("Edit")} + <% end %> @@ -74,6 +81,7 @@ <.link phx-click={JS.push("delete", value: %{id: user.id}) |> hide("#row-#{user.id}")} data-confirm={gettext("Are you sure?")} + data-testid="user-delete" > {gettext("Delete")} diff --git a/lib/mv_web/live/user_live/show.ex b/lib/mv_web/live/user_live/show.ex index fa4f186..5114b74 100644 --- a/lib/mv_web/live/user_live/show.ex +++ b/lib/mv_web/live/user_live/show.ex @@ -42,7 +42,11 @@ defmodule MvWeb.UserLive.Show do {gettext("Back to users list")} <%= if can?(@current_user, :update, @user) do %> - <.button variant="primary" navigate={~p"/users/#{@user}/edit?return_to=show"}> + <.button + variant="primary" + navigate={~p"/users/#{@user}/edit?return_to=show"} + data-testid="user-edit" + > <.icon name="hero-pencil-square" /> {gettext("Edit User")} <% end %>