Add OpenAPI spec for AdminAPI.StatusController

This commit is contained in:
Egor Kislitsyn 2020-05-21 14:03:38 +04:00
commit 45d2c4157f
No known key found for this signature in database
GPG key ID: 1B49CB15B71E7805
6 changed files with 221 additions and 72 deletions

View file

@ -350,7 +350,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}")
assert "Not found" == json_response(conn, 404)
assert %{"error" => "Not found"} == json_response(conn, 404)
end
end
@ -683,7 +683,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
conn = post(conn, "/api/pleroma/admin/users/email_invite?email=foo@bar.com&name=JD")
assert json_response(conn, :bad_request) ==
"To send invites you need to set the `invites_enabled` option to true."
%{
"error" =>
"To send invites you need to set the `invites_enabled` option to true."
}
end
test "it returns 500 if `registrations_open` is enabled", %{conn: conn} do
@ -693,7 +696,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
conn = post(conn, "/api/pleroma/admin/users/email_invite?email=foo@bar.com&name=JD")
assert json_response(conn, :bad_request) ==
"To send invites you need to set the `registrations_open` option to false."
%{
"error" =>
"To send invites you need to set the `registrations_open` option to false."
}
end
end
@ -1307,7 +1313,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|> put("/api/pleroma/admin/users/disable_mfa", %{nickname: "nickname"})
|> json_response(404)
assert response == "Not found"
assert response == %{"error" => "Not found"}
end
end
@ -1413,7 +1419,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
test "with invalid token", %{conn: conn} do
conn = post(conn, "/api/pleroma/admin/users/revoke_invite", %{"token" => "foo"})
assert json_response(conn, :not_found) == "Not found"
assert json_response(conn, :not_found) == %{"error" => "Not found"}
end
end
@ -1440,7 +1446,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
test "returns 404 when report id is invalid", %{conn: conn} do
conn = get(conn, "/api/pleroma/admin/reports/test")
assert json_response(conn, :not_found) == "Not found"
assert json_response(conn, :not_found) == %{"error" => "Not found"}
end
end
@ -1705,7 +1711,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
conn = get(conn, "/api/pleroma/admin/config")
assert json_response(conn, 400) ==
"To use this endpoint you need to enable configuration from database."
%{
"error" => "To use this endpoint you need to enable configuration from database."
}
end
test "with settings only in db", %{conn: conn} do
@ -1827,7 +1835,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
conn = post(conn, "/api/pleroma/admin/config", %{"configs" => []})
assert json_response(conn, 400) ==
"To use this endpoint you need to enable configuration from database."
%{"error" => "To use this endpoint you need to enable configuration from database."}
end
describe "POST /api/pleroma/admin/config" do

View file

@ -30,7 +30,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
test "not found", %{conn: conn} do
assert conn
|> get("/api/pleroma/admin/statuses/not_found")
|> json_response(:not_found)
|> json_response_and_validate_schema(:not_found)
end
test "shows activity", %{conn: conn} do
@ -39,7 +39,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
response =
conn
|> get("/api/pleroma/admin/statuses/#{activity.id}")
|> json_response(200)
|> json_response_and_validate_schema(200)
assert response["id"] == activity.id
end
@ -55,8 +55,9 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
test "toggle sensitive flag", %{conn: conn, id: id, admin: admin} do
response =
conn
|> put_req_header("content-type", "application/json")
|> put("/api/pleroma/admin/statuses/#{id}", %{"sensitive" => "true"})
|> json_response(:ok)
|> json_response_and_validate_schema(:ok)
assert response["sensitive"]
@ -67,8 +68,9 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
response =
conn
|> put_req_header("content-type", "application/json")
|> put("/api/pleroma/admin/statuses/#{id}", %{"sensitive" => "false"})
|> json_response(:ok)
|> json_response_and_validate_schema(:ok)
refute response["sensitive"]
end
@ -76,8 +78,9 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
test "change visibility flag", %{conn: conn, id: id, admin: admin} do
response =
conn
|> put_req_header("content-type", "application/json")
|> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "public"})
|> json_response(:ok)
|> json_response_and_validate_schema(:ok)
assert response["visibility"] == "public"
@ -88,23 +91,29 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
response =
conn
|> put_req_header("content-type", "application/json")
|> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "private"})
|> json_response(:ok)
|> json_response_and_validate_schema(:ok)
assert response["visibility"] == "private"
response =
conn
|> put_req_header("content-type", "application/json")
|> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "unlisted"})
|> json_response(:ok)
|> json_response_and_validate_schema(:ok)
assert response["visibility"] == "unlisted"
end
test "returns 400 when visibility is unknown", %{conn: conn, id: id} do
conn = put(conn, "/api/pleroma/admin/statuses/#{id}", %{visibility: "test"})
conn =
conn
|> put_req_header("content-type", "application/json")
|> put("/api/pleroma/admin/statuses/#{id}", %{visibility: "test"})
assert json_response(conn, :bad_request) == "Unsupported visibility"
assert %{"error" => "test - Invalid value for enum."} =
json_response_and_validate_schema(conn, :bad_request)
end
end
@ -118,7 +127,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
test "deletes status", %{conn: conn, id: id, admin: admin} do
conn
|> delete("/api/pleroma/admin/statuses/#{id}")
|> json_response(:ok)
|> json_response_and_validate_schema(:ok)
refute Activity.get_by_id(id)
@ -131,7 +140,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
test "returns 404 when the status does not exist", %{conn: conn} do
conn = delete(conn, "/api/pleroma/admin/statuses/test")
assert json_response(conn, :not_found) == "Not found"
assert json_response_and_validate_schema(conn, :not_found) == %{"error" => "Not found"}
end
end
@ -151,7 +160,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
response =
conn
|> get("/api/pleroma/admin/statuses")
|> json_response(200)
|> json_response_and_validate_schema(200)
refute "private" in Enum.map(response, & &1["visibility"])
assert length(response) == 3
@ -166,7 +175,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
response =
conn
|> get("/api/pleroma/admin/statuses?local_only=true")
|> json_response(200)
|> json_response_and_validate_schema(200)
assert length(response) == 1
end
@ -179,7 +188,7 @@ 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(conn, 200) |> length() == 3
assert json_response_and_validate_schema(conn, 200) |> length() == 3
end
end
end