diff options
author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2021-02-18 18:16:23 +0300 |
---|---|---|
committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2021-02-28 19:33:16 +0300 |
commit | 66810cf49b211ceb5d9140ff2926089700a57864 (patch) | |
tree | b15650d20b87d452bce3f777290fc24d274377f8 /test/pleroma | |
parent | 6a71aa535b3c30c1f3832e6140a51a46a0f2514c (diff) | |
download | pleroma-feature/2515-admin-statuses.tar.gz |
changes for admin status endpointsfeature/2515-admin-statuses
- docs fix, that status endpoints accept `page` parameter
- added total to /api/pleroma/admin/instances/:instance/statuses
- godmode for /api/pleroma/admin/instances/:instance/statuses
Diffstat (limited to 'test/pleroma')
-rw-r--r-- | test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs | 20 | ||||
-rw-r--r-- | test/pleroma/web/admin_api/controllers/status_controller_test.exs | 56 |
2 files changed, 76 insertions, 0 deletions
diff --git a/test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs b/test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs index 8cd9f939b..5d5e10dd8 100644 --- a/test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs +++ b/test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs @@ -832,6 +832,26 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do assert length(activities) == 3 end + + test "godmode", %{conn: conn} do + user = insert(:user, local: false, ap_id: "https://example.com/users/user") + {:ok, a1} = CommonAPI.post(user, %{status: "public"}) + {:ok, a2} = CommonAPI.post(user, %{status: "private", visibility: "private"}) + + %{"total" => 1, "activities" => activities} = + conn |> get("/api/pleroma/admin/instances/example.com/statuses") |> json_response(200) + + assert Enum.map(activities, & &1["id"]) == [a1.id] + + %{"total" => 2, "activities" => activities} = + conn + |> get("/api/pleroma/admin/instances/example.com/statuses?godmode=true") + |> json_response(200) + + ids = Enum.map(activities, & &1["id"]) + assert a1.id in ids + assert a2.id in ids + end end describe "PATCH /confirm_email" do diff --git a/test/pleroma/web/admin_api/controllers/status_controller_test.exs b/test/pleroma/web/admin_api/controllers/status_controller_test.exs index 3fdf23ba2..a504cde5e 100644 --- a/test/pleroma/web/admin_api/controllers/status_controller_test.exs +++ b/test/pleroma/web/admin_api/controllers/status_controller_test.exs @@ -194,8 +194,64 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "private"}) {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + conn = get(conn, "/api/pleroma/admin/statuses?godmode=true") + assert json_response_and_validate_schema(conn, 200) |> length() == 3 end end + + describe "GET /api/v2/pleroma/admin/statuses" do + test "returns all public and unlisted statuses", %{conn: conn, admin: admin} do + blocked = insert(:user) + user = insert(:user) + User.block(admin, blocked) + + {:ok, _} = CommonAPI.post(user, %{status: "@#{admin.nickname}", visibility: "direct"}) + + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "unlisted"}) + {:ok, private} = CommonAPI.post(user, %{status: ".", visibility: "private"}) + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + {:ok, _} = CommonAPI.post(blocked, %{status: ".", visibility: "public"}) + + %{"total" => 3, "activities" => activities} = + conn + |> get("/api/v2/pleroma/admin/statuses") + |> json_response_and_validate_schema(200) + + ids = Enum.map(activities, & &1["id"]) + refute private.id in ids + assert length(activities) == 3 + end + + test "returns only local statuses with local_only on", %{conn: conn} do + user = insert(:user) + remote_user = insert(:user, local: false, nickname: "archaeme@archae.me") + insert(:note_activity, user: user, local: true) + insert(:note_activity, user: remote_user, local: false) + + %{"total" => 1, "activities" => activities} = + conn + |> get("/api/v2/pleroma/admin/statuses?local_only=true") + |> json_response_and_validate_schema(200) + + assert length(activities) == 1 + end + + test "returns private and direct statuses with godmode on", %{conn: conn, admin: admin} do + user = insert(:user) + + {:ok, _} = CommonAPI.post(user, %{status: "@#{admin.nickname}", visibility: "direct"}) + + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "private"}) + {:ok, _} = CommonAPI.post(user, %{status: ".", visibility: "public"}) + + %{"total" => 3, "activities" => activities} = + conn + |> get("/api/v2/pleroma/admin/statuses?godmode=true") + |> json_response_and_validate_schema(200) + + assert length(activities) == 3 + end + end end |