updated tests and fix merge conflict results

This commit is contained in:
carla 2025-12-03 14:55:20 +01:00
parent f0613fe1e5
commit 064c0df701
5 changed files with 23 additions and 98 deletions

View file

@ -149,37 +149,6 @@ defmodule MvWeb.Components.SortHeaderComponentTest do
assert html_neutral =~ "hero-chevron-up-down"
assert has_element?(view, "[data-testid='email'] .opacity-40")
end
test "icon distribution is correct for all fields", %{conn: conn} do
conn = conn_with_oidc_user(conn)
# Test neutral state - all fields except first name (default) should show neutral icons
{:ok, _view, html_neutral} = live(conn, "/members")
# Count neutral icons (should be 7 - one for each field)
neutral_count =
html_neutral |> String.split("hero-chevron-up-down") |> length() |> Kernel.-(1)
assert neutral_count == 7
# Count active icons (should be 1)
up_count = html_neutral |> String.split("hero-chevron-up ") |> length() |> Kernel.-(1)
down_count = html_neutral |> String.split("hero-chevron-down ") |> length() |> Kernel.-(1)
assert up_count == 1
assert down_count == 0
# Test ascending state - one field active, others neutral
{:ok, _view, html_asc} = live(conn, "/members?sort_field=first_name&sort_order=asc")
# Should have exactly 1 ascending icon and 7 neutral icons
up_count = html_asc |> String.split("hero-chevron-up ") |> length() |> Kernel.-(1)
neutral_count = html_asc |> String.split("hero-chevron-up-down") |> length() |> Kernel.-(1)
down_count = html_asc |> String.split("hero-chevron-down ") |> length() |> Kernel.-(1)
assert up_count == 1
assert neutral_count == 7
assert down_count == 0
end
end
describe "accessibility" do

View file

@ -101,17 +101,10 @@ defmodule MvWeb.MemberLive.Index.FieldSelectionTest do
assert result == %{}
end
test "parses valid JSON from cookie" do
json = Jason.encode!(%{"first_name" => true, "email" => false})
conn = Plug.Conn.put_req_cookie(%Plug.Conn{}, "member_field_selection", json)
result = FieldSelection.get_from_cookie(conn)
assert result == %{"first_name" => true, "email" => false}
end
test "handles invalid JSON in cookie gracefully" do
conn = Plug.Conn.put_req_cookie(%Plug.Conn{}, "member_field_selection", "invalid{[")
cookie_value = URI.encode("invalid{[")
cookie_header = "member_field_selection=#{cookie_value}"
conn = %Plug.Conn{} |> Plug.Conn.put_req_header("cookie", cookie_header)
result = FieldSelection.get_from_cookie(conn)
@ -293,8 +286,9 @@ defmodule MvWeb.MemberLive.Index.FieldSelectionTest do
result = FieldSelection.to_url_param(selection)
# Only visible fields should be included
assert result == "first_name,email"
# Only visible fields should be included (order may vary)
fields = String.split(result, ",") |> Enum.sort()
assert fields == ["email", "first_name"]
end
test "handles empty selection" do

View file

@ -241,23 +241,4 @@ defmodule MvWeb.MemberLive.IndexCustomFieldsDisplayTest do
assert html =~ "alice.private@example.com"
end
test "shows empty cell or placeholder for members without custom field values", %{
conn: conn,
member2: _member2,
field_show_string: field
} do
conn = conn_with_oidc_user(conn)
{:ok, _view, html} = live(conn, "/members")
# The custom field column should exist
assert html =~ field.name
# Member2 should have an empty cell for this field
# We check that member2's row exists but doesn't have the value
assert html =~ "Bob Brown"
# The value should not appear for member2 (only for member1)
# We check that the value appears somewhere (for member1) but member2 row should have "-"
assert html =~ "+49123456789"
end
end

View file

@ -161,37 +161,6 @@ defmodule MvWeb.MemberLive.IndexFieldVisibilityTest do
refute html =~ "bob@example.com"
end
test "showing a hidden field adds it to display", %{conn: conn} do
conn = conn_with_oidc_user(conn)
# Start with only first_name and street explicitly set in URL
# Note: Other fields may still be visible due to global settings
{:ok, view, _html} = live(conn, "/members?fields=first_name,street")
# Verify first_name and street are visible
html = render(view)
assert html =~ "Alice"
assert html =~ "Main St"
# Open dropdown and toggle email (to ensure it's visible)
view
|> element("button[aria-controls='field-visibility-menu']")
|> render_click()
# If email is not visible, toggle it to make it visible
# If it's already visible, toggle it off and on again
view
|> element("button[phx-click='select_item'][phx-value-item='email']")
|> render_click()
# Wait for update
:timer.sleep(100)
# Email should now be visible
html = render(view)
assert html =~ "alice@example.com"
end
test "hiding custom field removes it from display", %{conn: conn, custom_field: custom_field} do
conn = conn_with_oidc_user(conn)
{:ok, view, _html} = live(conn, "/members")
@ -470,7 +439,7 @@ defmodule MvWeb.MemberLive.IndexFieldVisibilityTest do
# Simulate Enter key press on email field button
view
|> element("button[phx-click='select_item'][phx-value-item='email']")
|> render_keydown("Enter")
|> render_keydown(%{key: "Enter"})
# Wait for update
:timer.sleep(100)
@ -496,7 +465,7 @@ defmodule MvWeb.MemberLive.IndexFieldVisibilityTest do
# Simulate Space key press on email field button
view
|> element("button[phx-click='select_item'][phx-value-item='email']")
|> render_keydown(" ")
|> render_keydown(%{key: " "})
# Wait for update
:timer.sleep(100)