diff options
| author | link0ff <juri@linkov.net> | 2019-03-03 18:29:37 +0200 | 
|---|---|---|
| committer | link0ff <juri@linkov.net> | 2019-03-03 18:29:37 +0200 | 
| commit | 19e2b852473ea4d371fb3d77e9344025e0499428 (patch) | |
| tree | dcd43e823f7687767651e6eb0877b5b4aca53882 /test/web/admin_api | |
| parent | e278d470232f4e8081bbbe358137400074673e75 (diff) | |
| parent | ace4231628ad1af08c8696fb7fe6983549f62631 (diff) | |
| download | pleroma-19e2b852473ea4d371fb3d77e9344025e0499428.tar.gz pleroma-19e2b852473ea4d371fb3d77e9344025e0499428.zip | |
Merge remote-tracking branch 'upstream/develop' into feature/openldap-support
Diffstat (limited to 'test/web/admin_api')
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 150 | 
1 files changed, 150 insertions, 0 deletions
| diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 9fbaaba39..42e0daf8e 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -330,4 +330,154 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      assert conn.status == 200    end + +  describe "GET /api/pleroma/admin/users" do +    test "renders users array for the first page" do +      admin = insert(:user, info: %{is_admin: true}) +      user = insert(:user) + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users?page=1") + +      assert json_response(conn, 200) == %{ +               "count" => 2, +               "page_size" => 50, +               "users" => [ +                 %{ +                   "deactivated" => admin.info.deactivated, +                   "id" => admin.id, +                   "nickname" => admin.nickname +                 }, +                 %{ +                   "deactivated" => user.info.deactivated, +                   "id" => user.id, +                   "nickname" => user.nickname +                 } +               ] +             } +    end + +    test "renders empty array for the second page" do +      admin = insert(:user, info: %{is_admin: true}) +      insert(:user) + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users?page=2") + +      assert json_response(conn, 200) == %{ +               "count" => 2, +               "page_size" => 50, +               "users" => [] +             } +    end +  end + +  test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do +    admin = insert(:user, info: %{is_admin: true}) +    user = insert(:user) + +    conn = +      build_conn() +      |> assign(:user, admin) +      |> patch("/api/pleroma/admin/users/#{user.nickname}/toggle_activation") + +    assert json_response(conn, 200) == +             %{ +               "deactivated" => !user.info.deactivated, +               "id" => user.id, +               "nickname" => user.nickname +             } +  end + +  describe "GET /api/pleroma/admin/users/search" do +    test "regular search" do +      admin = insert(:user, info: %{is_admin: true}) +      user = insert(:user, nickname: "bob") + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users/search?query=bo") + +      assert json_response(conn, 200) == %{ +               "count" => 1, +               "page_size" => 50, +               "users" => [ +                 %{ +                   "deactivated" => user.info.deactivated, +                   "id" => user.id, +                   "nickname" => user.nickname +                 } +               ] +             } +    end + +    test "regular search with page size" do +      admin = insert(:user, info: %{is_admin: true}) +      user = insert(:user, nickname: "bob") +      user2 = insert(:user, nickname: "bo") + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users/search?query=bo&page_size=1&page=1") + +      assert json_response(conn, 200) == %{ +               "count" => 2, +               "page_size" => 1, +               "users" => [ +                 %{ +                   "deactivated" => user.info.deactivated, +                   "id" => user.id, +                   "nickname" => user.nickname +                 } +               ] +             } + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users/search?query=bo&page_size=1&page=2") + +      assert json_response(conn, 200) == %{ +               "count" => 2, +               "page_size" => 1, +               "users" => [ +                 %{ +                   "deactivated" => user2.info.deactivated, +                   "id" => user2.id, +                   "nickname" => user2.nickname +                 } +               ] +             } +    end + +    test "only local users" do +      admin = insert(:user, info: %{is_admin: true}, nickname: "john") +      user = insert(:user, nickname: "bob") + +      insert(:user, nickname: "bobb", local: false) + +      conn = +        build_conn() +        |> assign(:user, admin) +        |> get("/api/pleroma/admin/users/search?query=bo&local=true") + +      assert json_response(conn, 200) == %{ +               "count" => 1, +               "page_size" => 50, +               "users" => [ +                 %{ +                   "deactivated" => user.info.deactivated, +                   "id" => user.id, +                   "nickname" => user.nickname +                 } +               ] +             } +    end +  end  end | 
