diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 1edded415..0e5e2d943 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -610,7 +610,7 @@ defmodule Pleroma.User do select_merge: %{ search_distance: fragment( - "? <-> (? || ?)", + "? <-> (? || coalesce(?, ''))", ^query, u.nickname, u.name diff --git a/test/user_test.exs b/test/user_test.exs index 869e9196d..74accb7c8 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -756,5 +756,15 @@ defmodule Pleroma.UserTest do assert user_four == User.search("lain@ple") |> List.first() |> Map.put(:search_distance, nil) end + + test "finds a user whose name is nil" do + _user = insert(:user, %{name: "notamatch", nickname: "testuser@pleroma.amplifie.red"}) + user_two = insert(:user, %{name: nil, nickname: "lain@pleroma.soykaf.com"}) + + assert user_two == + User.search("lain@pleroma.soykaf.com") + |> List.first() + |> Map.put(:search_distance, nil) + end end end