diff options
author | kaniini <nenolod@gmail.com> | 2019-03-03 15:59:15 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-03-03 15:59:15 +0000 |
commit | 6c6a2dbfdd7ae4043633c3201693c5c49538ef84 (patch) | |
tree | 20797ce1b269eef2048d768cc0ea528b08a2899d /test | |
parent | b531e366dfffa6b34900dd249492707bff647401 (diff) | |
parent | 08c6aeeed7ff5db242050d06e707f99b6d75684d (diff) | |
download | pleroma-6c6a2dbfdd7ae4043633c3201693c5c49538ef84.tar.gz |
Merge branch 'feature/add-pagination-to-users-admin-api' into 'develop'
Add pagination and search to users
See merge request pleroma/pleroma!873
Diffstat (limited to 'test')
-rw-r--r-- | test/user_test.exs | 5 | ||||
-rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 141 |
2 files changed, 131 insertions, 15 deletions
diff --git a/test/user_test.exs b/test/user_test.exs index b8d41ecfd..390e3ef13 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -929,7 +929,8 @@ defmodule Pleroma.UserTest do {:ok, follower} = User.follow(follower, u1) {:ok, u1} = User.follow(u1, friend) - assert [friend.id, follower.id, u2.id] == Enum.map(User.search("doe", false, u1), & &1.id) + assert [friend.id, follower.id, u2.id] -- + Enum.map(User.search("doe", resolve: false, for_user: u1), & &1.id) == [] end test "finds a user whose name is nil" do @@ -951,7 +952,7 @@ defmodule Pleroma.UserTest do end test "works with URIs" do - results = User.search("http://mastodon.example.org/users/admin", true) + results = User.search("http://mastodon.example.org/users/admin", resolve: true) result = results |> List.first() user = User.get_by_ap_id("http://mastodon.example.org/users/admin") diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index f6ae16844..42e0daf8e 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -331,22 +331,49 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do assert conn.status == 200 end - test "GET /api/pleroma/admin/users" do - admin = insert(:user, info: %{is_admin: true}) - user = insert(:user) + 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") + conn = + build_conn() + |> assign(:user, admin) + |> get("/api/pleroma/admin/users?page=1") - assert json_response(conn, 200) == [ - %{ - "deactivated" => user.info.deactivated, - "id" => user.id, - "nickname" => user.nickname + 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 @@ -365,4 +392,92 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do "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 |