mitgliederverwaltung/test/mv_web/components/field_visibility_dropdown_component_test.exs

35 lines
1.3 KiB
Elixir

defmodule MvWeb.Components.FieldVisibilityDropdownComponentTest do
use MvWeb.ConnCase, async: true
import Phoenix.LiveViewTest
describe "field visibility dropdown in member view" do
test "renders and toggles visibility", %{conn: conn} do
# Email is folded into the Member cell by default; unfold it so it appears
# as its own togglable column in the dropdown.
conn =
conn
|> conn_with_oidc_user()
|> Plug.Conn.put_session("member_view_settings", ~s({"member_include_email":false}))
{:ok, view, _html} = live(conn, ~p"/members")
# Renders Dropdown
assert has_element?(view, "[data-testid='dropdown-menu']")
# Opens Dropdown
view |> element("[data-testid='dropdown-button']") |> render_click()
assert has_element?(view, "#field-visibility-menu")
assert has_element?(view, "button[phx-click='select_item'][phx-value-item='email']")
assert has_element?(view, "button[phx-click='select_all']")
assert has_element?(view, "button[phx-click='select_none']")
end
test "trigger carries a trailing chevron affordance", %{conn: conn} do
conn = conn_with_oidc_user(conn)
{:ok, _view, html} = live(conn, ~p"/members")
# The shared dropdown trigger signals "opens a menu" with a trailing chevron.
assert html =~ "hero-chevron-down"
end
end
end