|> base_query(following)
|> filter_blocked_user(for_user)
|> filter_invisible_users()
- |> filter_bots()
+ |> filter_internal_users()
|> filter_blocked_domains(for_user)
|> fts_search(query_string)
|> trigram_rank(query_string)
from(q in query, where: q.invisible == false)
end
- defp filter_bots(query) do
- from(q in query, where: q.actor_type not in ["Application", "Service"])
+ defp filter_internal_users(query) do
+ from(q in query, where: q.actor_type != "Application")
end
defp filter_blocked_user(query, %User{} = blocker) do
assert found_user.id == user.id
end
- test "excludes bots from results" do
- insert(:user, actor_type: "Service", nickname: "bot1")
- insert(:user, actor_type: "Application", nickname: "bot2")
+ test "excludes service actors from results" do
+ insert(:user, actor_type: "Application", nickname: "user1")
+ service = insert(:user, actor_type: "Service", nickname: "user2")
+ person = insert(:user, actor_type: "Person", nickname: "user3")
- assert [] = User.search("bot")
+ assert [found_user1, found_user2] = User.search("user")
+ assert [found_user1.id, found_user2.id] -- [service.id, person.id] == []
end
test "accepts limit parameter" do