58 lines
1.9 KiB
Elixir
58 lines
1.9 KiB
Elixir
defmodule MvWeb.MemberLive.IndexDefaultColumnsTest do
|
|
@moduledoc """
|
|
§1.2 — With no persisted column selection, exactly the curated default columns
|
|
are visible: selection checkbox, Name (name + email), Address (composite),
|
|
fee type, fee status, groups, join date.
|
|
"""
|
|
use MvWeb.ConnCase, async: false
|
|
|
|
import Phoenix.LiveViewTest
|
|
|
|
alias Mv.Helpers.SystemActor
|
|
|
|
setup %{conn: conn} do
|
|
{:ok, _} =
|
|
Mv.Membership.create_member(
|
|
%{
|
|
first_name: "Col",
|
|
last_name: "Default",
|
|
email: "col@example.com",
|
|
street: "Musterweg",
|
|
house_number: "1",
|
|
postal_code: "10115",
|
|
city: "Berlin"
|
|
},
|
|
actor: SystemActor.get_system_actor()
|
|
)
|
|
|
|
%{conn: conn_with_oidc_user(conn)}
|
|
end
|
|
|
|
test "curated columns are visible by default", %{conn: conn} do
|
|
{:ok, view, _html} = live(conn, ~p"/members")
|
|
|
|
# Composite Name + Address cells.
|
|
assert has_element?(view, "[data-testid='member-name']")
|
|
assert has_element?(view, "[data-testid='member-address']")
|
|
# Fee type, fee status, groups, join date headers.
|
|
assert has_element?(view, "[data-testid='membership_fee_type']")
|
|
assert has_element?(view, "[data-testid='join_date']")
|
|
assert has_element?(view, "th", "Membership Fee Status")
|
|
assert has_element?(view, "[data-testid='groups']")
|
|
end
|
|
|
|
test "the individual name/address sub-fields are hidden by default", %{conn: conn} do
|
|
{:ok, view, _html} = live(conn, ~p"/members")
|
|
|
|
for field <- ~w(first_name last_name email city street house_number postal_code country) do
|
|
refute has_element?(view, "[data-testid='#{field}']")
|
|
end
|
|
end
|
|
|
|
test "an explicit field selection still overrides the curated default", %{conn: conn} do
|
|
{:ok, view, _html} = live(conn, ~p"/members?fields=email")
|
|
|
|
assert has_element?(view, "[data-testid='email']")
|
|
refute has_element?(view, "[data-testid='member-name']")
|
|
end
|
|
end
|