summaryrefslogtreecommitdiff
path: root/test/pleroma/web/admin_api/controllers/user_controller_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/pleroma/web/admin_api/controllers/user_controller_test.exs')
-rw-r--r--test/pleroma/web/admin_api/controllers/user_controller_test.exs310
1 files changed, 134 insertions, 176 deletions
diff --git a/test/pleroma/web/admin_api/controllers/user_controller_test.exs b/test/pleroma/web/admin_api/controllers/user_controller_test.exs
index 5705306c7..31319b5e5 100644
--- a/test/pleroma/web/admin_api/controllers/user_controller_test.exs
+++ b/test/pleroma/web/admin_api/controllers/user_controller_test.exs
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.AdminAPI.UserControllerTest do
@@ -44,107 +44,50 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(build_conn(), "/api/pleroma/admin/users/#{user.nickname}?admin_token=password123")
- assert json_response(conn, 200)
+ assert json_response_and_validate_schema(conn, 200)
end
- describe "with [:auth, :enforce_oauth_admin_scope_usage]," do
- setup do: clear_config([:auth, :enforce_oauth_admin_scope_usage], true)
-
- test "GET /api/pleroma/admin/users/:nickname requires admin:read:accounts or broader scope",
- %{admin: admin} do
- user = insert(:user)
- url = "/api/pleroma/admin/users/#{user.nickname}"
-
- good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"])
- good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"])
- good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"])
-
- bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts"])
- bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"])
- bad_token3 = nil
-
- for good_token <- [good_token1, good_token2, good_token3] do
- conn =
- build_conn()
- |> assign(:user, admin)
- |> assign(:token, good_token)
- |> get(url)
-
- assert json_response(conn, 200)
- end
+ test "GET /api/pleroma/admin/users/:nickname requires admin:read:accounts or broader scope",
+ %{admin: admin} do
+ user = insert(:user)
+ url = "/api/pleroma/admin/users/#{user.nickname}"
- for good_token <- [good_token1, good_token2, good_token3] do
- conn =
- build_conn()
- |> assign(:user, nil)
- |> assign(:token, good_token)
- |> get(url)
+ good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"])
+ good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"])
+ good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"])
- assert json_response(conn, :forbidden)
- end
+ bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts"])
+ bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"])
+ bad_token3 = nil
- for bad_token <- [bad_token1, bad_token2, bad_token3] do
- conn =
- build_conn()
- |> assign(:user, admin)
- |> assign(:token, bad_token)
- |> get(url)
+ for good_token <- [good_token1, good_token2, good_token3] do
+ conn =
+ build_conn()
+ |> assign(:user, admin)
+ |> assign(:token, good_token)
+ |> get(url)
- assert json_response(conn, :forbidden)
- end
+ assert json_response_and_validate_schema(conn, 200)
end
- end
-
- describe "unless [:auth, :enforce_oauth_admin_scope_usage]," do
- setup do: clear_config([:auth, :enforce_oauth_admin_scope_usage], false)
-
- test "GET /api/pleroma/admin/users/:nickname requires " <>
- "read:accounts or admin:read:accounts or broader scope",
- %{admin: admin} do
- user = insert(:user)
- url = "/api/pleroma/admin/users/#{user.nickname}"
-
- good_token1 = insert(:oauth_token, user: admin, scopes: ["admin"])
- good_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read"])
- good_token3 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts"])
- good_token4 = insert(:oauth_token, user: admin, scopes: ["read:accounts"])
- good_token5 = insert(:oauth_token, user: admin, scopes: ["read"])
-
- good_tokens = [good_token1, good_token2, good_token3, good_token4, good_token5]
-
- bad_token1 = insert(:oauth_token, user: admin, scopes: ["read:accounts:partial"])
- bad_token2 = insert(:oauth_token, user: admin, scopes: ["admin:read:accounts:partial"])
- bad_token3 = nil
- for good_token <- good_tokens do
- conn =
- build_conn()
- |> assign(:user, admin)
- |> assign(:token, good_token)
- |> get(url)
-
- assert json_response(conn, 200)
- end
-
- for good_token <- good_tokens do
- conn =
- build_conn()
- |> assign(:user, nil)
- |> assign(:token, good_token)
- |> get(url)
+ for good_token <- [good_token1, good_token2, good_token3] do
+ conn =
+ build_conn()
+ |> assign(:user, nil)
+ |> assign(:token, good_token)
+ |> get(url)
- assert json_response(conn, :forbidden)
- end
+ assert json_response(conn, :forbidden)
+ end
- for bad_token <- [bad_token1, bad_token2, bad_token3] do
- conn =
- build_conn()
- |> assign(:user, admin)
- |> assign(:token, bad_token)
- |> get(url)
+ for bad_token <- [bad_token1, bad_token2, bad_token3] do
+ conn =
+ build_conn()
+ |> assign(:user, admin)
+ |> assign(:token, bad_token)
+ |> get(url)
- assert json_response(conn, :forbidden)
- end
+ assert json_response_and_validate_schema(conn, :forbidden)
end
end
@@ -169,7 +112,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert user.note_count == 1
assert user.follower_count == 1
assert user.following_count == 1
- refute user.deactivated
+ assert user.is_active
with_mock Pleroma.Web.Federator,
publish: fn _ -> nil end,
@@ -181,17 +124,17 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
ObanHelpers.perform_all()
- assert User.get_by_nickname(user.nickname).deactivated
+ refute User.get_by_nickname(user.nickname).is_active
log_entry = Repo.one(ModerationLog)
assert ModerationLog.get_log_entry_message(log_entry) ==
"@#{admin.nickname} deleted users: @#{user.nickname}"
- assert json_response(conn, 200) == [user.nickname]
+ assert json_response_and_validate_schema(conn, 200) == [user.nickname]
user = Repo.get(User, user.id)
- assert user.deactivated
+ refute user.is_active
assert user.avatar == %{}
assert user.banner == %{}
@@ -209,28 +152,30 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
user_one = insert(:user)
user_two = insert(:user)
- conn =
+ response =
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> delete("/api/pleroma/admin/users", %{
nicknames: [user_one.nickname, user_two.nickname]
})
+ |> json_response_and_validate_schema(200)
log_entry = Repo.one(ModerationLog)
assert ModerationLog.get_log_entry_message(log_entry) ==
"@#{admin.nickname} deleted users: @#{user_one.nickname}, @#{user_two.nickname}"
- response = json_response(conn, 200)
assert response -- [user_one.nickname, user_two.nickname] == []
end
end
describe "/api/pleroma/admin/users" do
test "Create", %{conn: conn} do
- conn =
+ response =
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/users", %{
"users" => [
%{
@@ -245,8 +190,9 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
}
]
})
+ |> json_response_and_validate_schema(200)
+ |> Enum.map(&Map.get(&1, "type"))
- response = json_response(conn, 200) |> Enum.map(&Map.get(&1, "type"))
assert response == ["success", "success"]
log_entry = Repo.one(ModerationLog)
@@ -260,6 +206,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn =
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/users", %{
"users" => [
%{
@@ -270,7 +217,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
]
})
- assert json_response(conn, 409) == [
+ assert json_response_and_validate_schema(conn, 409) == [
%{
"code" => 409,
"data" => %{
@@ -289,6 +236,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn =
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/users", %{
"users" => [
%{
@@ -299,7 +247,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
]
})
- assert json_response(conn, 409) == [
+ assert json_response_and_validate_schema(conn, 409) == [
%{
"code" => 409,
"data" => %{
@@ -318,6 +266,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn =
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/users", %{
"users" => [
%{
@@ -333,7 +282,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
]
})
- assert json_response(conn, 409) == [
+ assert json_response_and_validate_schema(conn, 409) == [
%{
"code" => 409,
"data" => %{
@@ -364,7 +313,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}")
- assert user_response(user) == json_response(conn, 200)
+ assert user_response(user) == json_response_and_validate_schema(conn, 200)
end
test "when the user doesn't exist", %{conn: conn} do
@@ -372,7 +321,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}")
- assert %{"error" => "Not found"} == json_response(conn, 404)
+ assert %{"error" => "Not found"} == json_response_and_validate_schema(conn, 404)
end
end
@@ -383,6 +332,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/users/follow", %{
"follower" => follower.nickname,
"followed" => user.nickname
@@ -409,6 +359,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn
|> put_req_header("accept", "application/json")
+ |> put_req_header("content-type", "application/json")
|> post("/api/pleroma/admin/users/unfollow", %{
"follower" => follower.nickname,
"followed" => user.nickname
@@ -429,7 +380,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
describe "GET /api/pleroma/admin/users" do
test "renders users array for the first page", %{conn: conn, admin: admin} do
user = insert(:user, local: false, tags: ["foo", "bar"])
- user2 = insert(:user, approval_pending: true, registration_reason: "I'm a chill dude")
+ user2 = insert(:user, is_approved: false, registration_reason: "I'm a chill dude")
conn = get(conn, "/api/pleroma/admin/users?page=1")
@@ -444,7 +395,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
user2,
%{
"local" => true,
- "approval_pending" => true,
+ "is_approved" => false,
"registration_reason" => "I'm a chill dude",
"actor_type" => "Person"
}
@@ -452,7 +403,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
]
|> Enum.sort_by(& &1["nickname"])
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 3,
"page_size" => 50,
"users" => users
@@ -467,7 +418,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert %{"count" => 26, "page_size" => 10, "users" => users1} =
conn
|> get("/api/pleroma/admin/users?page=1&filters=", %{page_size: "10"})
- |> json_response(200)
+ |> json_response_and_validate_schema(200)
assert Enum.count(users1) == 10
assert service1 not in users1
@@ -475,7 +426,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert %{"count" => 26, "page_size" => 10, "users" => users2} =
conn
|> get("/api/pleroma/admin/users?page=2&filters=", %{page_size: "10"})
- |> json_response(200)
+ |> json_response_and_validate_schema(200)
assert Enum.count(users2) == 10
assert service1 not in users2
@@ -483,7 +434,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
assert %{"count" => 26, "page_size" => 10, "users" => users3} =
conn
|> get("/api/pleroma/admin/users?page=3&filters=", %{page_size: "10"})
- |> json_response(200)
+ |> json_response_and_validate_schema(200)
assert Enum.count(users3) == 6
assert service1 not in users3
@@ -494,7 +445,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?page=2")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 2,
"page_size" => 50,
"users" => []
@@ -506,7 +457,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?query=bo")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user, %{"local" => true})]
@@ -519,7 +470,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?query=domain.com")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user)]
@@ -532,7 +483,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?query=nickname@domain.com")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user)]
@@ -545,7 +496,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?name=display")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user)]
@@ -558,7 +509,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?email=email@example.com")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user)]
@@ -571,7 +522,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn1 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=1")
- assert json_response(conn1, 200) == %{
+ assert json_response_and_validate_schema(conn1, 200) == %{
"count" => 2,
"page_size" => 1,
"users" => [user_response(user)]
@@ -579,7 +530,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn2 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=2")
- assert json_response(conn2, 200) == %{
+ assert json_response_and_validate_schema(conn2, 200) == %{
"count" => 2,
"page_size" => 1,
"users" => [user_response(user2)]
@@ -599,7 +550,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
|> assign(:token, token)
|> get("/api/pleroma/admin/users?query=bo&filters=local")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user)]
@@ -621,13 +572,13 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
"roles" => %{"admin" => true, "moderator" => false}
}),
user_response(old_admin, %{
- "deactivated" => false,
+ "is_active" => true,
"roles" => %{"admin" => true, "moderator" => false}
})
]
|> Enum.sort_by(& &1["nickname"])
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 3,
"page_size" => 50,
"users" => users
@@ -635,22 +586,22 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "only unconfirmed users", %{conn: conn} do
- sad_user = insert(:user, nickname: "sadboy", confirmation_pending: true)
- old_user = insert(:user, nickname: "oldboy", confirmation_pending: true)
+ sad_user = insert(:user, nickname: "sadboy", is_confirmed: false)
+ old_user = insert(:user, nickname: "oldboy", is_confirmed: false)
- insert(:user, nickname: "happyboy", approval_pending: false)
- insert(:user, confirmation_pending: false)
+ insert(:user, nickname: "happyboy", is_approved: true)
+ insert(:user, is_confirmed: true)
result =
conn
|> get("/api/pleroma/admin/users?filters=unconfirmed")
- |> json_response(200)
+ |> json_response_and_validate_schema(200)
users =
Enum.map([old_user, sad_user], fn user ->
user_response(user, %{
- "confirmation_pending" => true,
- "approval_pending" => false
+ "is_confirmed" => false,
+ "is_approved" => true
})
end)
|> Enum.sort_by(& &1["nickname"])
@@ -662,22 +613,22 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
user =
insert(:user,
nickname: "sadboy",
- approval_pending: true,
+ is_approved: false,
registration_reason: "Plz let me in!"
)
- insert(:user, nickname: "happyboy", approval_pending: false)
+ insert(:user, nickname: "happyboy", is_approved: true)
conn = get(conn, "/api/pleroma/admin/users?filters=need_approval")
users = [
user_response(
user,
- %{"approval_pending" => true, "registration_reason" => "Plz let me in!"}
+ %{"is_approved" => false, "registration_reason" => "Plz let me in!"}
)
]
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => users
@@ -694,17 +645,17 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
users =
[
user_response(admin, %{
- "deactivated" => false,
+ "is_active" => true,
"roles" => %{"admin" => true, "moderator" => false}
}),
user_response(second_admin, %{
- "deactivated" => false,
+ "is_active" => true,
"roles" => %{"admin" => true, "moderator" => false}
})
]
|> Enum.sort_by(& &1["nickname"])
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 2,
"page_size" => 50,
"users" => users
@@ -718,12 +669,12 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users?filters=is_moderator")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [
user_response(moderator, %{
- "deactivated" => false,
+ "is_active" => true,
"roles" => %{"admin" => false, "moderator" => true}
})
]
@@ -739,8 +690,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
response =
conn
- |> get(user_path(conn, :list), %{actor_types: ["Person"]})
- |> json_response(200)
+ |> get(user_path(conn, :index), %{actor_types: ["Person"]})
+ |> json_response_and_validate_schema(200)
users =
[
@@ -762,8 +713,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
response =
conn
- |> get(user_path(conn, :list), %{actor_types: ["Person", "Service"]})
- |> json_response(200)
+ |> get(user_path(conn, :index), %{actor_types: ["Person", "Service"]})
+ |> json_response_and_validate_schema(200)
users =
[
@@ -785,8 +736,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
response =
conn
- |> get(user_path(conn, :list), %{actor_types: ["Service"]})
- |> json_response(200)
+ |> get(user_path(conn, :index), %{actor_types: ["Service"]})
+ |> json_response_and_validate_schema(200)
users = [user_response(user_service, %{"actor_type" => "Service"})]
@@ -808,7 +759,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
]
|> Enum.sort_by(& &1["nickname"])
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 2,
"page_size" => 50,
"users" => users
@@ -816,8 +767,8 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "`active` filters out users pending approval", %{token: token} do
- insert(:user, approval_pending: true)
- %{id: user_id} = insert(:user, approval_pending: false)
+ insert(:user, is_approved: false)
+ %{id: user_id} = insert(:user, is_approved: true)
%{id: admin_id} = token.user
conn =
@@ -833,16 +784,16 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
%{"id" => ^admin_id},
%{"id" => ^user_id}
]
- } = json_response(conn, 200)
+ } = json_response_and_validate_schema(conn, 200)
end
test "it works with multiple filters" do
admin = insert(:user, nickname: "john", is_admin: true)
token = insert(:oauth_admin_token, user: admin)
- user = insert(:user, nickname: "bob", local: false, deactivated: true)
+ user = insert(:user, nickname: "bob", local: false, is_active: false)
- insert(:user, nickname: "ken", local: true, deactivated: true)
- insert(:user, nickname: "bobb", local: false, deactivated: false)
+ insert(:user, nickname: "ken", local: true, is_active: false)
+ insert(:user, nickname: "bobb", local: false, is_active: true)
conn =
build_conn()
@@ -850,7 +801,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
|> assign(:token, token)
|> get("/api/pleroma/admin/users?filters=deactivated,external")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [user_response(user)]
@@ -862,7 +813,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
conn = get(conn, "/api/pleroma/admin/users")
- assert json_response(conn, 200) == %{
+ assert json_response_and_validate_schema(conn, 200) == %{
"count" => 1,
"page_size" => 50,
"users" => [
@@ -873,18 +824,19 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "PATCH /api/pleroma/admin/users/activate", %{admin: admin, conn: conn} do
- user_one = insert(:user, deactivated: true)
- user_two = insert(:user, deactivated: true)
+ user_one = insert(:user, is_active: false)
+ user_two = insert(:user, is_active: false)
conn =
- patch(
- conn,
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> patch(
"/api/pleroma/admin/users/activate",
%{nicknames: [user_one.nickname, user_two.nickname]}
)
- response = json_response(conn, 200)
- assert Enum.map(response["users"], & &1["deactivated"]) == [false, false]
+ response = json_response_and_validate_schema(conn, 200)
+ assert Enum.map(response["users"], & &1["is_active"]) == [true, true]
log_entry = Repo.one(ModerationLog)
@@ -893,18 +845,19 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "PATCH /api/pleroma/admin/users/deactivate", %{admin: admin, conn: conn} do
- user_one = insert(:user, deactivated: false)
- user_two = insert(:user, deactivated: false)
+ user_one = insert(:user, is_active: true)
+ user_two = insert(:user, is_active: true)
conn =
- patch(
- conn,
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> patch(
"/api/pleroma/admin/users/deactivate",
%{nicknames: [user_one.nickname, user_two.nickname]}
)
- response = json_response(conn, 200)
- assert Enum.map(response["users"], & &1["deactivated"]) == [true, true]
+ response = json_response_and_validate_schema(conn, 200)
+ assert Enum.map(response["users"], & &1["is_active"]) == [false, false]
log_entry = Repo.one(ModerationLog)
@@ -913,18 +866,19 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
end
test "PATCH /api/pleroma/admin/users/approve", %{admin: admin, conn: conn} do
- user_one = insert(:user, approval_pending: true)
- user_two = insert(:user, approval_pending: true)
+ user_one = insert(:user, is_approved: false)
+ user_two = insert(:user, is_approved: false)
conn =
- patch(
- conn,
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> patch(
"/api/pleroma/admin/users/approve",
%{nicknames: [user_one.nickname, user_two.nickname]}
)
- response = json_response(conn, 200)
- assert Enum.map(response["users"], & &1["approval_pending"]) == [false, false]
+ response = json_response_and_validate_schema(conn, 200)
+ assert Enum.map(response["users"], & &1["is_approved"]) == [true, true]
log_entry = Repo.one(ModerationLog)
@@ -935,12 +889,15 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation", %{admin: admin, conn: conn} do
user = insert(:user)
- conn = patch(conn, "/api/pleroma/admin/users/#{user.nickname}/toggle_activation")
+ conn =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> patch("/api/pleroma/admin/users/#{user.nickname}/toggle_activation")
- assert json_response(conn, 200) ==
+ assert json_response_and_validate_schema(conn, 200) ==
user_response(
user,
- %{"deactivated" => !user.deactivated}
+ %{"is_active" => !user.is_active}
)
log_entry = Repo.one(ModerationLog)
@@ -951,16 +908,17 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
defp user_response(user, attrs \\ %{}) do
%{
- "deactivated" => user.deactivated,
+ "is_active" => user.is_active,
"id" => user.id,
+ "email" => user.email,
"nickname" => user.nickname,
"roles" => %{"admin" => false, "moderator" => false},
"local" => user.local,
"tags" => [],
"avatar" => User.avatar_url(user) |> MediaProxy.url(),
"display_name" => HTML.strip_tags(user.name || user.nickname),
- "confirmation_pending" => false,
- "approval_pending" => false,
+ "is_confirmed" => true,
+ "is_approved" => true,
"url" => user.ap_id,
"registration_reason" => nil,
"actor_type" => "Person"