diff options
Diffstat (limited to 'test/web/admin_api')
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 75 | ||||
| -rw-r--r-- | test/web/admin_api/search_test.exs | 88 | 
2 files changed, 157 insertions, 6 deletions
| diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 0aab7f262..2f53416a3 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -40,6 +40,41 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end    end +  describe "/api/pleroma/admin/users/:nickname" do +    test "Show", %{conn: conn} do +      admin = insert(:user, info: %{is_admin: true}) +      user = insert(:user) + +      conn = +        conn +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users/#{user.nickname}") + +      expected = %{ +        "deactivated" => false, +        "id" => to_string(user.id), +        "local" => true, +        "nickname" => user.nickname, +        "roles" => %{"admin" => false, "moderator" => false}, +        "tags" => [] +      } + +      assert expected == json_response(conn, 200) +    end + +    test "when the user doesn't exist", %{conn: conn} do +      admin = insert(:user, info: %{is_admin: true}) +      user = build(:user) + +      conn = +        conn +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users/#{user.nickname}") + +      assert "Not found" == json_response(conn, 404) +    end +  end +    describe "PUT /api/pleroma/admin/users/tag" do      setup do        admin = insert(:user, info: %{is_admin: true}) @@ -408,13 +443,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      test "regular search with page size" do        admin = insert(:user, info: %{is_admin: true}) -      user = insert(:user, nickname: "bob") -      user2 = insert(:user, nickname: "bo") +      user = insert(:user, nickname: "aalice") +      user2 = insert(:user, nickname: "alice")        conn =          build_conn()          |> assign(:user, admin) -        |> get("/api/pleroma/admin/users?query=bo&page_size=1&page=1") +        |> get("/api/pleroma/admin/users?query=a&page_size=1&page=1")        assert json_response(conn, 200) == %{                 "count" => 2, @@ -434,7 +469,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        conn =          build_conn()          |> assign(:user, admin) -        |> get("/api/pleroma/admin/users?query=bo&page_size=1&page=2") +        |> get("/api/pleroma/admin/users?query=a&page_size=1&page=2")        assert json_response(conn, 200) == %{                 "count" => 2, @@ -461,7 +496,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        conn =          build_conn()          |> assign(:user, admin) -        |> get("/api/pleroma/admin/users?query=bo&local_only=true") +        |> get("/api/pleroma/admin/users?query=bo&filters=local")        assert json_response(conn, 200) == %{                 "count" => 1, @@ -488,7 +523,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        conn =          build_conn()          |> assign(:user, admin) -        |> get("/api/pleroma/admin/users?local_only=true") +        |> get("/api/pleroma/admin/users?filters=local")        assert json_response(conn, 200) == %{                 "count" => 2, @@ -513,6 +548,34 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 ]               }      end + +    test "it works with multiple filters" do +      admin = insert(:user, nickname: "john", info: %{is_admin: true}) +      user = insert(:user, nickname: "bob", local: false, info: %{deactivated: true}) + +      insert(:user, nickname: "ken", local: true, info: %{deactivated: true}) +      insert(:user, nickname: "bobb", local: false, info: %{deactivated: false}) + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users?filters=deactivated,external") + +      assert json_response(conn, 200) == %{ +               "count" => 1, +               "page_size" => 50, +               "users" => [ +                 %{ +                   "deactivated" => user.info.deactivated, +                   "id" => user.id, +                   "nickname" => user.nickname, +                   "roles" => %{"admin" => false, "moderator" => false}, +                   "local" => user.local, +                   "tags" => [] +                 } +               ] +             } +    end    end    test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do diff --git a/test/web/admin_api/search_test.exs b/test/web/admin_api/search_test.exs new file mode 100644 index 000000000..3950996ed --- /dev/null +++ b/test/web/admin_api/search_test.exs @@ -0,0 +1,88 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.SearchTest do +  use Pleroma.Web.ConnCase + +  alias Pleroma.Web.AdminAPI.Search + +  import Pleroma.Factory + +  describe "search for admin" do +    test "it ignores case" do +      insert(:user, nickname: "papercoach") +      insert(:user, nickname: "CanadaPaperCoach") + +      {:ok, _results, count} = +        Search.user(%{ +          query: "paper", +          local: false, +          page: 1, +          page_size: 50 +        }) + +      assert count == 2 +    end + +    test "it returns local/external users" do +      insert(:user, local: true) +      insert(:user, local: false) +      insert(:user, local: false) + +      {:ok, _results, local_count} = +        Search.user(%{ +          query: "", +          local: true +        }) + +      {:ok, _results, external_count} = +        Search.user(%{ +          query: "", +          external: true +        }) + +      assert local_count == 1 +      assert external_count == 2 +    end + +    test "it returns active/deactivated users" do +      insert(:user, info: %{deactivated: true}) +      insert(:user, info: %{deactivated: true}) +      insert(:user, info: %{deactivated: false}) + +      {:ok, _results, active_count} = +        Search.user(%{ +          query: "", +          active: true +        }) + +      {:ok, _results, deactivated_count} = +        Search.user(%{ +          query: "", +          deactivated: true +        }) + +      assert active_count == 1 +      assert deactivated_count == 2 +    end + +    test "it returns specific user" do +      insert(:user) +      insert(:user) +      insert(:user, nickname: "bob", local: true, info: %{deactivated: false}) + +      {:ok, _results, total_count} = Search.user(%{query: ""}) + +      {:ok, _results, count} = +        Search.user(%{ +          query: "Bo", +          active: true, +          local: true +        }) + +      assert total_count == 3 +      assert count == 1 +    end +  end +end | 
