141 lines
3.5 KiB
Elixir
141 lines
3.5 KiB
Elixir
defmodule MvWeb.Helpers.MemberHelpersTest do
|
|
@moduledoc """
|
|
Tests for the display_name/1 helper function in MemberHelpers.
|
|
"""
|
|
use Mv.DataCase, async: true
|
|
|
|
alias Mv.Membership.Member
|
|
alias MvWeb.Helpers.MemberHelpers
|
|
|
|
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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.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 MemberHelpers.display_name(member) == "Doe"
|
|
end
|
|
end
|
|
end
|