AdminAPI: suggest a user through the API
This commit is contained in:
parent
e28d990ecb
commit
6c0484d571
8 changed files with 257 additions and 2 deletions
|
|
@ -1720,6 +1720,38 @@ defmodule Pleroma.UserTest do
|
|||
assert user.banner == %{}
|
||||
end
|
||||
|
||||
describe "set_suggestion" do
|
||||
test "suggests a user" do
|
||||
user = insert(:user, is_suggested: false)
|
||||
refute user.is_suggested
|
||||
{:ok, user} = User.set_suggestion(user, true)
|
||||
assert user.is_suggested
|
||||
end
|
||||
|
||||
test "suggests a list of users" do
|
||||
unsuggested_users = [
|
||||
insert(:user, is_suggested: false),
|
||||
insert(:user, is_suggested: false),
|
||||
insert(:user, is_suggested: false)
|
||||
]
|
||||
|
||||
{:ok, users} = User.set_suggestion(unsuggested_users, true)
|
||||
|
||||
assert Enum.count(users) == 3
|
||||
|
||||
Enum.each(users, fn user ->
|
||||
assert user.is_suggested
|
||||
end)
|
||||
end
|
||||
|
||||
test "unsuggests a user" do
|
||||
user = insert(:user, is_suggested: true)
|
||||
assert user.is_suggested
|
||||
{:ok, user} = User.set_suggestion(user, false)
|
||||
refute user.is_suggested
|
||||
end
|
||||
end
|
||||
|
||||
test "get_public_key_for_ap_id fetches a user that's not in the db" do
|
||||
assert {:ok, _key} = User.get_public_key_for_ap_id("http://mastodon.example.org/users/admin")
|
||||
end
|
||||
|
|
|
|||
|
|
@ -873,6 +873,58 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
|
|||
"@#{admin.nickname} approved users: @#{user_one.nickname}, @#{user_two.nickname}"
|
||||
end
|
||||
|
||||
test "PATCH /api/pleroma/admin/users/suggest", %{admin: admin, conn: conn} do
|
||||
user1 = insert(:user, is_suggested: false)
|
||||
user2 = insert(:user, is_suggested: false)
|
||||
|
||||
_response =
|
||||
conn
|
||||
|> put_req_header("content-type", "application/json")
|
||||
|> patch(
|
||||
"/api/pleroma/admin/users/suggest",
|
||||
%{nicknames: [user1.nickname, user2.nickname]}
|
||||
)
|
||||
|> json_response_and_validate_schema(200)
|
||||
|
||||
[user1, user2] = Repo.reload!([user1, user2])
|
||||
|
||||
assert user1.is_suggested
|
||||
assert user2.is_suggested
|
||||
|
||||
log_entry = Repo.one(ModerationLog)
|
||||
|
||||
assert ModerationLog.get_log_entry_message(log_entry) ==
|
||||
"@#{admin.nickname} added suggested users: @#{user1.nickname}, @#{
|
||||
user2.nickname
|
||||
}"
|
||||
end
|
||||
|
||||
test "PATCH /api/pleroma/admin/users/unsuggest", %{admin: admin, conn: conn} do
|
||||
user1 = insert(:user, is_suggested: true)
|
||||
user2 = insert(:user, is_suggested: true)
|
||||
|
||||
_response =
|
||||
conn
|
||||
|> put_req_header("content-type", "application/json")
|
||||
|> patch(
|
||||
"/api/pleroma/admin/users/unsuggest",
|
||||
%{nicknames: [user1.nickname, user2.nickname]}
|
||||
)
|
||||
|> json_response_and_validate_schema(200)
|
||||
|
||||
[user1, user2] = Repo.reload!([user1, user2])
|
||||
|
||||
refute user1.is_suggested
|
||||
refute user2.is_suggested
|
||||
|
||||
log_entry = Repo.one(ModerationLog)
|
||||
|
||||
assert ModerationLog.get_log_entry_message(log_entry) ==
|
||||
"@#{admin.nickname} removed suggested users: @#{user1.nickname}, @#{
|
||||
user2.nickname
|
||||
}"
|
||||
end
|
||||
|
||||
test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation", %{admin: admin, conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue