tests: adds tests

This commit is contained in:
carla 2025-12-02 09:22:26 +01:00 committed by Rafael Epplée
parent d10f2ecc90
commit 944b868478
2 changed files with 155 additions and 0 deletions

View file

@ -0,0 +1,75 @@
defmodule MvWeb.MemberLive.IndexMemberFieldsDisplayTest do
use MvWeb.ConnCase, async: true
import Phoenix.LiveViewTest
require Ash.Query
alias Mv.Membership.Member
setup do
{:ok, member1} =
Member
|> Ash.Changeset.for_create(:create_member, %{
first_name: "Alice",
last_name: "Anderson",
email: "alice@example.com",
street: "Main Street",
house_number: "123",
postal_code: "12345",
city: "Berlin",
phone_number: "+49123456789",
join_date: ~D[2020-01-15]
})
|> Ash.create()
{:ok, member2} =
Member
|> Ash.Changeset.for_create(:create_member, %{
first_name: "Bob",
last_name: "Brown",
email: "bob@example.com"
})
|> Ash.create()
%{
member1: member1,
member2: member2
}
end
test "shows multiple members correctly", %{conn: conn, member1: m1, member2: m2} do
conn = conn_with_oidc_user(conn)
{:ok, _view, html} = live(conn, "/members")
for m <- [m1, m2], field <- [m.first_name, m.last_name, m.email] do
assert html =~ field
end
end
test "respects show_in_overview config", %{conn: conn, member1: m} do
{:ok, settings} = Mv.Membership.get_settings()
fields_to_hide = [:street, :house_number]
{:ok, _} =
Mv.Membership.update_settings(settings, %{
member_field_visibility: Map.new(fields_to_hide, &{&1, false})
})
conn = conn_with_oidc_user(conn)
{:ok, _view, html} = live(conn, "/members")
assert html =~ "Email"
assert html =~ m.email
refute html =~ m.street
end
defp get_field_label(:street), do: "Street"
defp get_field_label(:house_number), do: "House Number"
defp get_field_label(:postal_code), do: "Postal Code"
defp get_field_label(:city), do: "City"
defp get_field_label(:phone_number), do: "Phone Number"
defp get_field_label(:join_date), do: "Join Date"
defp get_field_label(:email), do: "Email"
defp get_field_label(:first_name), do: "First name"
defp get_field_label(:last_name), do: "Last name"
end