Tests: data-testid selectors, scoped delete, sidebar testid
Member/User auth tests use data-testid and #row-id selectors. Sidebar auth tests assert on data-testid=sidebar-administration. Sidebar test expects data-testid in expanded-menu-group markup.
This commit is contained in:
parent
ee6bfbacbb
commit
cbc9376b7b
4 changed files with 46 additions and 43 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue