logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 5f1b6f5acadb512fc98fff3a177e1ea417bf4b95
parent: 489bd30fb93543acfe70ef70db3830c62e5980bc
Author: rinpatch <rinpatch@sdf.org>
Date:   Thu,  6 Jun 2019 14:26:19 +0000

Merge branch 'fix-search' into 'develop'

Fix search

Closes #960

See merge request pleroma/pleroma!1253

Diffstat:

Mlib/pleroma/user/search.ex4++--
Mtest/tasks/user_test.exs21+++++++++++++++++++++
Mtest/web/mastodon_api/mastodon_api_controller_test.exs9+++++++++
3 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/lib/pleroma/user/search.ex b/lib/pleroma/user/search.ex @@ -86,8 +86,8 @@ defmodule Pleroma.User.Search do search_rank: fragment( """ - CASE WHEN (?) THEN (?) * 1.3 - WHEN (?) THEN (?) * 1.2 + CASE WHEN (?) THEN 0.5 + (?) * 1.3 + WHEN (?) THEN 0.5 + (?) * 1.2 WHEN (?) THEN (?) * 1.1 ELSE (?) END """, diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs @@ -366,4 +366,25 @@ defmodule Mix.Tasks.Pleroma.UserTest do refute user.info.confirmation_token end end + + describe "search" do + test "it returns users matching" do + user = insert(:user) + moon = insert(:user, nickname: "moon", name: "fediverse expert moon") + moot = insert(:user, nickname: "moot") + kawen = insert(:user, nickname: "kawen", name: "fediverse expert moon") + + {:ok, user} = User.follow(user, kawen) + + assert [moon.id, kawen.id] == User.Search.search("moon") |> Enum.map(& &1.id) + res = User.search("moo") |> Enum.map(& &1.id) + assert moon.id in res + assert moot.id in res + assert kawen.id in res + assert [moon.id, kawen.id] == User.Search.search("moon fediverse") |> Enum.map(& &1.id) + + assert [kawen.id, moon.id] == + User.Search.search("moon fediverse", for_user: user) |> Enum.map(& &1.id) + end + end end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -2185,6 +2185,15 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do assert account["acct"] == "shp@social.heldscal.la" end + test "search doesn't fetch remote accounts if resolve is false", %{conn: conn} do + conn = + conn + |> get("/api/v1/search", %{"q" => "shp@social.heldscal.la", "resolve" => "false"}) + + assert results = json_response(conn, 200) + assert [] == results["accounts"] + end + test "returns the favorites of a user", %{conn: conn} do user = insert(:user) other_user = insert(:user)