AdminAPI.InstanceController: clean up tests, rename actions

This commit is contained in:
Alex Gleason 2021-07-17 15:00:15 -05:00
parent 54dbcfe02a
commit bad79f79e6
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
3 changed files with 27 additions and 29 deletions

View File

@ -19,18 +19,18 @@ defmodule Pleroma.Web.AdminAPI.InstanceController do
plug( plug(
OAuthScopesPlug, OAuthScopesPlug,
%{scopes: ["admin:read:statuses"]} %{scopes: ["admin:read:statuses"]}
when action in [:list_instance_statuses] when action in [:list_statuses]
) )
plug( plug(
OAuthScopesPlug, OAuthScopesPlug,
%{scopes: ["admin:write:accounts", "admin:write:statuses"]} %{scopes: ["admin:write:accounts", "admin:write:statuses"]}
when action in [:delete_instance] when action in [:delete]
) )
action_fallback(AdminAPI.FallbackController) action_fallback(AdminAPI.FallbackController)
def list_instance_statuses(conn, %{"instance" => instance} = params) do def list_statuses(conn, %{"instance" => instance} = params) do
with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true
{page, page_size} = page_params(params) {page, page_size} = page_params(params)
@ -48,7 +48,7 @@ def list_instance_statuses(conn, %{"instance" => instance} = params) do
|> render("index.json", %{total: result[:total], activities: result[:items], as: :activity}) |> render("index.json", %{total: result[:total], activities: result[:items], as: :activity})
end end
def delete_instance(conn, %{"instance" => instance}) do def delete(conn, %{"instance" => instance}) do
with {:ok, _job} <- Instance.delete_users_and_activities(instance) do with {:ok, _job} <- Instance.delete_users_and_activities(instance) do
json(conn, instance) json(conn, instance)
end end

View File

@ -209,8 +209,8 @@ defmodule Pleroma.Web.Router do
get("/users/:nickname/statuses", AdminAPIController, :list_user_statuses) get("/users/:nickname/statuses", AdminAPIController, :list_user_statuses)
get("/users/:nickname/chats", AdminAPIController, :list_user_chats) get("/users/:nickname/chats", AdminAPIController, :list_user_chats)
get("/instances/:instance/statuses", InstanceController, :list_instance_statuses) get("/instances/:instance/statuses", InstanceController, :list_statuses)
delete("/instances/:instance", InstanceController, :delete_instance) delete("/instances/:instance", InstanceController, :delete)
get("/instance_document/:name", InstanceDocumentController, :show) get("/instance_document/:name", InstanceDocumentController, :show)
patch("/instance_document/:name", InstanceDocumentController, :update) patch("/instance_document/:name", InstanceDocumentController, :update)

View File

@ -30,38 +30,36 @@ defmodule Pleroma.Web.AdminAPI.InstanceControllerTest do
{:ok, %{admin: admin, token: token, conn: conn}} {:ok, %{admin: admin, token: token, conn: conn}}
end end
describe "instances" do test "GET /instances/:instance/statuses", %{conn: conn} do
test "GET /instances/:instance/statuses", %{conn: conn} do user = insert(:user, local: false, ap_id: "https://archae.me/users/archaeme")
user = insert(:user, local: false, ap_id: "https://archae.me/users/archaeme") user2 = insert(:user, local: false, ap_id: "https://test.com/users/test")
user2 = insert(:user, local: false, ap_id: "https://test.com/users/test") insert_pair(:note_activity, user: user)
insert_pair(:note_activity, user: user) activity = insert(:note_activity, user: user2)
activity = insert(:note_activity, user: user2)
%{"total" => 2, "activities" => activities} = %{"total" => 2, "activities" => activities} =
conn |> get("/api/pleroma/admin/instances/archae.me/statuses") |> json_response(200) conn |> get("/api/pleroma/admin/instances/archae.me/statuses") |> json_response(200)
assert length(activities) == 2 assert length(activities) == 2
%{"total" => 1, "activities" => [_]} = %{"total" => 1, "activities" => [_]} =
conn |> get("/api/pleroma/admin/instances/test.com/statuses") |> json_response(200) conn |> get("/api/pleroma/admin/instances/test.com/statuses") |> json_response(200)
%{"total" => 0, "activities" => []} = %{"total" => 0, "activities" => []} =
conn |> get("/api/pleroma/admin/instances/nonexistent.com/statuses") |> json_response(200) conn |> get("/api/pleroma/admin/instances/nonexistent.com/statuses") |> json_response(200)
CommonAPI.repeat(activity.id, user) CommonAPI.repeat(activity.id, user)
%{"total" => 2, "activities" => activities} = %{"total" => 2, "activities" => activities} =
conn |> get("/api/pleroma/admin/instances/archae.me/statuses") |> json_response(200) conn |> get("/api/pleroma/admin/instances/archae.me/statuses") |> json_response(200)
assert length(activities) == 2 assert length(activities) == 2
%{"total" => 3, "activities" => activities} = %{"total" => 3, "activities" => activities} =
conn conn
|> get("/api/pleroma/admin/instances/archae.me/statuses?with_reblogs=true") |> get("/api/pleroma/admin/instances/archae.me/statuses?with_reblogs=true")
|> json_response(200) |> json_response(200)
assert length(activities) == 3 assert length(activities) == 3
end
end end
test "DELETE /instances/:instance", %{conn: conn} do test "DELETE /instances/:instance", %{conn: conn} do