diff options
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/mastodon_api/controllers/search_controller_test.exs | 40 | 
1 files changed, 39 insertions, 1 deletions
diff --git a/test/web/mastodon_api/controllers/search_controller_test.exs b/test/web/mastodon_api/controllers/search_controller_test.exs index 7d0cafccc..84d46895e 100644 --- a/test/web/mastodon_api/controllers/search_controller_test.exs +++ b/test/web/mastodon_api/controllers/search_controller_test.exs @@ -71,10 +71,48 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do          get(conn, "/api/v2/search?q=天子")          |> json_response_and_validate_schema(200) +      assert results["hashtags"] == [ +               %{"name" => "天子", "url" => "#{Web.base_url()}/tag/天子"} +             ] +        [status] = results["statuses"]        assert status["id"] == to_string(activity.id)      end +    test "constructs hashtags from search query", %{conn: conn} do +      results = +        conn +        |> get("/api/v2/search?#{URI.encode_query(%{q: "some text with #explicit #hashtags"})}") +        |> json_response_and_validate_schema(200) + +      assert results["hashtags"] == [ +               %{"name" => "explicit", "url" => "#{Web.base_url()}/tag/explicit"}, +               %{"name" => "hashtags", "url" => "#{Web.base_url()}/tag/hashtags"} +             ] + +      results = +        conn +        |> get("/api/v2/search?#{URI.encode_query(%{q: "john doe JOHN DOE"})}") +        |> json_response_and_validate_schema(200) + +      assert results["hashtags"] == [ +               %{"name" => "john", "url" => "#{Web.base_url()}/tag/john"}, +               %{"name" => "doe", "url" => "#{Web.base_url()}/tag/doe"}, +               %{"name" => "JohnDoe", "url" => "#{Web.base_url()}/tag/JohnDoe"} +             ] + +      results = +        conn +        |> get("/api/v2/search?#{URI.encode_query(%{q: "accident-prone"})}") +        |> json_response_and_validate_schema(200) + +      assert results["hashtags"] == [ +               %{"name" => "accident", "url" => "#{Web.base_url()}/tag/accident"}, +               %{"name" => "prone", "url" => "#{Web.base_url()}/tag/prone"}, +               %{"name" => "AccidentProne", "url" => "#{Web.base_url()}/tag/AccidentProne"} +             ] +    end +      test "excludes a blocked users from search results", %{conn: conn} do        user = insert(:user)        user_smith = insert(:user, %{nickname: "Agent", name: "I love 2hu"}) @@ -179,7 +217,7 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do        [account | _] = results["accounts"]        assert account["id"] == to_string(user_three.id) -      assert results["hashtags"] == [] +      assert results["hashtags"] == ["2hu"]        [status] = results["statuses"]        assert status["id"] == to_string(activity.id)  | 
