aboutsummaryrefslogtreecommitdiff
path: root/test/pleroma
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2021-02-18 18:16:23 +0300
committerAlexander Strizhakov <alex.strizhakov@gmail.com>2021-02-28 19:33:16 +0300
commit66810cf49b211ceb5d9140ff2926089700a57864 (patch)
treeb15650d20b87d452bce3f777290fc24d274377f8 /test/pleroma
parent6a71aa535b3c30c1f3832e6140a51a46a0f2514c (diff)
downloadpleroma-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.exs20
-rw-r--r--test/pleroma/web/admin_api/controllers/status_controller_test.exs56
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