feat: adds email as fallback for name in member details
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
74a2d07c24
commit
b59a4ef61a
10 changed files with 212 additions and 10 deletions
141
test/mv_web/member_live/index_display_name_test.exs
Normal file
141
test/mv_web/member_live/index_display_name_test.exs
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
defmodule MvWeb.MemberLive.Index.DisplayNameTest do
|
||||
@moduledoc """
|
||||
Tests for the display_name/1 helper function in MemberLive.Index.
|
||||
"""
|
||||
use Mv.DataCase, async: true
|
||||
|
||||
alias Mv.Membership.Member
|
||||
alias MvWeb.MemberLive.Index
|
||||
|
||||
describe "display_name/1" do
|
||||
test "returns full name when both first_name and last_name are present" do
|
||||
member = %Member{
|
||||
first_name: "John",
|
||||
last_name: "Doe",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "John Doe"
|
||||
end
|
||||
|
||||
test "returns email when both first_name and last_name are nil" do
|
||||
member = %Member{
|
||||
first_name: nil,
|
||||
last_name: nil,
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "john@example.com"
|
||||
end
|
||||
|
||||
test "returns first_name only when last_name is nil" do
|
||||
member = %Member{
|
||||
first_name: "John",
|
||||
last_name: nil,
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "John"
|
||||
end
|
||||
|
||||
test "returns last_name only when first_name is nil" do
|
||||
member = %Member{
|
||||
first_name: nil,
|
||||
last_name: "Doe",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "Doe"
|
||||
end
|
||||
|
||||
test "returns email when first_name and last_name are empty strings" do
|
||||
member = %Member{
|
||||
first_name: "",
|
||||
last_name: "",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "john@example.com"
|
||||
end
|
||||
|
||||
test "returns email when first_name and last_name are whitespace only" do
|
||||
member = %Member{
|
||||
first_name: " ",
|
||||
last_name: " \t ",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "john@example.com"
|
||||
end
|
||||
|
||||
test "trims whitespace from name parts" do
|
||||
member = %Member{
|
||||
first_name: " John ",
|
||||
last_name: " Doe ",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "John Doe"
|
||||
end
|
||||
|
||||
test "handles one empty string and one nil" do
|
||||
member = %Member{
|
||||
first_name: "",
|
||||
last_name: nil,
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "john@example.com"
|
||||
end
|
||||
|
||||
test "handles one nil and one empty string" do
|
||||
member = %Member{
|
||||
first_name: nil,
|
||||
last_name: "",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "john@example.com"
|
||||
end
|
||||
|
||||
test "handles one whitespace and one nil" do
|
||||
member = %Member{
|
||||
first_name: " ",
|
||||
last_name: nil,
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "john@example.com"
|
||||
end
|
||||
|
||||
test "handles one valid name and one whitespace" do
|
||||
member = %Member{
|
||||
first_name: "John",
|
||||
last_name: " ",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "John"
|
||||
end
|
||||
|
||||
test "handles member with only first_name containing whitespace" do
|
||||
member = %Member{
|
||||
first_name: " John ",
|
||||
last_name: nil,
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "John"
|
||||
end
|
||||
|
||||
test "handles member with only last_name containing whitespace" do
|
||||
member = %Member{
|
||||
first_name: nil,
|
||||
last_name: " Doe ",
|
||||
email: "john@example.com"
|
||||
}
|
||||
|
||||
assert Index.display_name(member) == "Doe"
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue