diff --git a/test/mv_web/member_live/index_test.exs b/test/mv_web/member_live/index_test.exs index 5b826bd..3232cc0 100644 --- a/test/mv_web/member_live/index_test.exs +++ b/test/mv_web/member_live/index_test.exs @@ -410,7 +410,17 @@ defmodule MvWeb.MemberLive.IndexTest do assert render(view) =~ "1" end - test "copy button is visible when members are selected", %{ + test "copy button is disabled when no members selected", %{conn: conn} do + conn = conn_with_oidc_user(conn) + {:ok, view, _html} = live(conn, "/members") + + # Copy button should be disabled (button element) + assert has_element?(view, "#copy-emails-btn[disabled]") + # Open email button should be disabled (link with tabindex and aria-disabled) + assert has_element?(view, "#open-email-btn[tabindex='-1'][aria-disabled='true']") + end + + test "copy button is enabled after selection", %{ conn: conn, member1: member1 } do @@ -420,8 +430,13 @@ defmodule MvWeb.MemberLive.IndexTest do # Select a member by sending the select_member event directly render_click(view, "select_member", %{"id" => member1.id}) - # Button should now be visible - assert has_element?(view, "#copy-emails-btn") + # Copy button should now be enabled (no disabled attribute) + refute has_element?(view, "#copy-emails-btn[disabled]") + # Open email button should now be enabled (no tabindex=-1 or aria-disabled) + refute has_element?(view, "#open-email-btn[tabindex='-1']") + refute has_element?(view, "#open-email-btn[aria-disabled='true']") + # Counter should show correct count + assert render(view) =~ "1" end test "copy button click triggers event and shows flash", %{