diff --git a/test/mv_web/components/layouts/sidebar_test.exs b/test/mv_web/components/layouts/sidebar_test.exs
index 0975b8f..ff81f24 100644
--- a/test/mv_web/components/layouts/sidebar_test.exs
+++ b/test/mv_web/components/layouts/sidebar_test.exs
@@ -149,7 +149,9 @@ defmodule MvWeb.Layouts.SidebarTest do
assert menu_item_count > 0, "Should have at least one top-level menu item"
# Check that nested menu groups exist
- assert html =~ ~s(
)
+ assert html =~
+ ~s()
+
assert html =~ ~s(role="group")
assert has_class?(html, "expanded-menu-group")
@@ -198,7 +200,9 @@ defmodule MvWeb.Layouts.SidebarTest do
html = render_sidebar(authenticated_assigns())
# Check for nested menu structure
- assert html =~ ~s()
+ assert html =~
+ ~s()
+
assert html =~ ~s(role="group")
assert html =~ ~s(aria-label="Administration")
assert has_class?(html, "expanded-menu-group")
@@ -526,7 +530,9 @@ defmodule MvWeb.Layouts.SidebarTest do
assert html =~ ~s(role="menuitem")
# Check that nested menus exist
- assert html =~ ~s()
+ assert html =~
+ ~s()
+
assert html =~ ~s(role="group")
# Footer section
@@ -634,7 +640,9 @@ defmodule MvWeb.Layouts.SidebarTest do
html = render_sidebar(authenticated_assigns())
# expanded-menu-group structure present
- assert html =~ ~s()
+ assert html =~
+ ~s()
+
assert html =~ ~s(role="group")
assert html =~ ~s(aria-label="Administration")
assert has_class?(html, "expanded-menu-group")
@@ -848,7 +856,9 @@ defmodule MvWeb.Layouts.SidebarTest do
# Expanded menu group should have correct structure
# (CSS handles hover effects, but we verify structure)
- assert html =~ ~s()
+ assert html =~
+ ~s()
+
assert html =~ ~s(role="group")
end
diff --git a/test/mv_web/components/sidebar_authorization_test.exs b/test/mv_web/components/sidebar_authorization_test.exs
index 234f7cb..079572f 100644
--- a/test/mv_web/components/sidebar_authorization_test.exs
+++ b/test/mv_web/components/sidebar_authorization_test.exs
@@ -31,7 +31,7 @@ defmodule MvWeb.SidebarAuthorizationTest do
assert html =~ ~s(href="/members")
assert html =~ ~s(href="/membership_fee_types")
- assert html =~ ~s(aria-label="Administration")
+ assert html =~ ~s(data-testid="sidebar-administration")
assert html =~ ~s(href="/users")
assert html =~ ~s(href="/groups")
assert html =~ ~s(href="/admin/roles")
@@ -94,7 +94,7 @@ defmodule MvWeb.SidebarAuthorizationTest do
refute html =~ ~s(href="/membership_fee_types")
refute html =~ ~s(href="/users")
- refute html =~ ~s(aria-label="Administration")
+ refute html =~ ~s(data-testid="sidebar-administration")
end
end
diff --git a/test/mv_web/live/member_live_authorization_test.exs b/test/mv_web/live/member_live_authorization_test.exs
index c8d02b8..9a23019 100644
--- a/test/mv_web/live/member_live_authorization_test.exs
+++ b/test/mv_web/live/member_live_authorization_test.exs
@@ -8,18 +8,14 @@ defmodule MvWeb.MemberLiveAuthorizationTest do
alias Mv.Fixtures
- # Use literal strings for button/link text (matches default Gettext locale)
- @new_member_text "New Member"
- @edit_member_text "Edit Member"
-
describe "Member Index - Vorstand (read_only)" do
@tag role: :read_only
test "sees member list but not New Member button", %{conn: conn} do
_member = Fixtures.member_fixture()
- {:ok, _view, html} = live(conn, "/members")
+ {:ok, view, _html} = live(conn, "/members")
- refute html =~ @new_member_text
+ refute has_element?(view, "[data-testid=member-new]")
end
@tag role: :read_only
@@ -28,8 +24,8 @@ defmodule MvWeb.MemberLiveAuthorizationTest do
{:ok, view, _html} = live(conn, "/members")
- refute has_element?(view, "a[href=\"/members/#{member.id}/edit\"]")
- refute has_element?(view, "a[phx-click*='delete']")
+ refute has_element?(view, "#row-#{member.id} [data-testid=member-edit]")
+ refute has_element?(view, "#row-#{member.id} [data-testid=member-delete]")
end
end
@@ -38,19 +34,19 @@ defmodule MvWeb.MemberLiveAuthorizationTest do
test "sees New Member and Edit buttons", %{conn: conn} do
member = Fixtures.member_fixture()
- {:ok, view, html} = live(conn, "/members")
+ {:ok, view, _html} = live(conn, "/members")
- assert html =~ @new_member_text
- assert has_element?(view, "a[href=\"/members/#{member.id}/edit\"]")
+ assert has_element?(view, "[data-testid=member-new]")
+ assert has_element?(view, "#row-#{member.id} [data-testid=member-edit]")
end
@tag role: :normal_user
test "does not see Delete button", %{conn: conn} do
- _member = Fixtures.member_fixture()
+ member = Fixtures.member_fixture()
{:ok, view, _html} = live(conn, "/members")
- refute has_element?(view, "a[phx-click*='delete']")
+ refute has_element?(view, "#row-#{member.id} [data-testid=member-delete]")
end
end
@@ -59,11 +55,11 @@ defmodule MvWeb.MemberLiveAuthorizationTest do
test "sees New Member, Edit and Delete buttons", %{conn: conn} do
member = Fixtures.member_fixture()
- {:ok, view, html} = live(conn, "/members")
+ {:ok, view, _html} = live(conn, "/members")
- assert html =~ @new_member_text
- assert has_element?(view, "a[href=\"/members/#{member.id}/edit\"]")
- assert has_element?(view, "a[phx-click*='delete']")
+ assert has_element?(view, "[data-testid=member-new]")
+ assert has_element?(view, "#row-#{member.id} [data-testid=member-edit]")
+ assert has_element?(view, "#row-#{member.id} [data-testid=member-delete]")
end
end
@@ -80,27 +76,27 @@ defmodule MvWeb.MemberLiveAuthorizationTest do
test "admin sees Edit button", %{conn: conn} do
member = Fixtures.member_fixture()
- {:ok, _view, html} = live(conn, "/members/#{member.id}")
+ {:ok, view, _html} = live(conn, "/members/#{member.id}")
- assert html =~ @edit_member_text
+ assert has_element?(view, "[data-testid=member-edit]")
end
@tag role: :read_only
test "read_only does not see Edit button", %{conn: conn} do
member = Fixtures.member_fixture()
- {:ok, _view, html} = live(conn, "/members/#{member.id}")
+ {:ok, view, _html} = live(conn, "/members/#{member.id}")
- refute html =~ @edit_member_text
+ refute has_element?(view, "[data-testid=member-edit]")
end
@tag role: :normal_user
test "normal_user sees Edit button", %{conn: conn} do
member = Fixtures.member_fixture()
- {:ok, _view, html} = live(conn, "/members/#{member.id}")
+ {:ok, view, _html} = live(conn, "/members/#{member.id}")
- assert html =~ @edit_member_text
+ assert has_element?(view, "[data-testid=member-edit]")
end
end
end
diff --git a/test/mv_web/live/user_live_authorization_test.exs b/test/mv_web/live/user_live_authorization_test.exs
index 9c35d87..f4b4746 100644
--- a/test/mv_web/live/user_live_authorization_test.exs
+++ b/test/mv_web/live/user_live_authorization_test.exs
@@ -8,19 +8,16 @@ defmodule MvWeb.UserLiveAuthorizationTest do
alias Mv.Fixtures
- @new_user_text "New User"
- @edit_user_text "Edit User"
-
describe "User Index - Admin" do
@tag role: :admin
test "sees New User, Edit and Delete buttons", %{conn: conn} do
user = Fixtures.user_with_role_fixture("admin")
- {:ok, view, html} = live(conn, "/users")
+ {:ok, view, _html} = live(conn, "/users")
- assert html =~ @new_user_text
- assert has_element?(view, "a[href=\"/users/#{user.id}/edit\"]")
- assert has_element?(view, "a[phx-click*='delete']")
+ assert has_element?(view, "[data-testid=user-new]")
+ assert has_element?(view, "#row-#{user.id} [data-testid=user-edit]")
+ assert has_element?(view, "#row-#{user.id} [data-testid=user-delete]")
end
end
@@ -47,25 +44,25 @@ defmodule MvWeb.UserLiveAuthorizationTest do
describe "User Show - own profile" do
@tag role: :member
test "member sees Edit button on own profile", %{conn: conn, current_user: user} do
- {:ok, _view, html} = live(conn, "/users/#{user.id}")
+ {:ok, view, _html} = live(conn, "/users/#{user.id}")
- assert html =~ @edit_user_text
+ assert has_element?(view, "[data-testid=user-edit]")
end
@tag role: :read_only
test "read_only sees Edit button on own profile", %{conn: conn, current_user: user} do
- {:ok, _view, html} = live(conn, "/users/#{user.id}")
+ {:ok, view, _html} = live(conn, "/users/#{user.id}")
- assert html =~ @edit_user_text
+ assert has_element?(view, "[data-testid=user-edit]")
end
@tag role: :admin
test "admin sees Edit button on user show", %{conn: conn} do
user = Fixtures.user_with_role_fixture("read_only")
- {:ok, _view, html} = live(conn, "/users/#{user.id}")
+ {:ok, view, _html} = live(conn, "/users/#{user.id}")
- assert html =~ @edit_user_text
+ assert has_element?(view, "[data-testid=user-edit]")
end
end