Merge develop
Merge conflict in lib/pleroma/activity.ex
This commit is contained in:
parent
289b8224ac
commit
bfeb33e951
10 changed files with 552 additions and 257 deletions
|
|
@ -419,14 +419,19 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
end
|
||||
|
||||
describe "GET /api/pleroma/admin/users" do
|
||||
test "renders users array for the first page" do
|
||||
setup do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
user = insert(:user, local: false, tags: ["foo", "bar"])
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/users?page=1")
|
||||
|
||||
{:ok, conn: conn, admin: admin}
|
||||
end
|
||||
|
||||
test "renders users array for the first page", %{conn: conn, admin: admin} do
|
||||
user = insert(:user, local: false, tags: ["foo", "bar"])
|
||||
conn = get(conn, "/api/pleroma/admin/users?page=1")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 2,
|
||||
|
|
@ -452,14 +457,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
}
|
||||
end
|
||||
|
||||
test "renders empty array for the second page" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
test "renders empty array for the second page", %{conn: conn} do
|
||||
insert(:user)
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/users?page=2")
|
||||
conn = get(conn, "/api/pleroma/admin/users?page=2")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 2,
|
||||
|
|
@ -468,14 +469,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
}
|
||||
end
|
||||
|
||||
test "regular search" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
test "regular search", %{conn: conn} do
|
||||
user = insert(:user, nickname: "bob")
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/users?query=bo")
|
||||
conn = get(conn, "/api/pleroma/admin/users?query=bo")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 1,
|
||||
|
|
@ -493,17 +490,101 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
}
|
||||
end
|
||||
|
||||
test "regular search with page size" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
test "search by domain", %{conn: conn} do
|
||||
user = insert(:user, nickname: "nickname@domain.com")
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?query=domain.com")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 1,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => user.info.deactivated,
|
||||
"id" => user.id,
|
||||
"nickname" => user.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => false},
|
||||
"local" => true,
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "search by full nickname", %{conn: conn} do
|
||||
user = insert(:user, nickname: "nickname@domain.com")
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?query=nickname@domain.com")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 1,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => user.info.deactivated,
|
||||
"id" => user.id,
|
||||
"nickname" => user.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => false},
|
||||
"local" => true,
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "search by display name", %{conn: conn} do
|
||||
user = insert(:user, name: "Display name")
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?name=display")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 1,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => user.info.deactivated,
|
||||
"id" => user.id,
|
||||
"nickname" => user.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => false},
|
||||
"local" => true,
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "search by email", %{conn: conn} do
|
||||
user = insert(:user, email: "email@example.com")
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?email=email@example.com")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 1,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => user.info.deactivated,
|
||||
"id" => user.id,
|
||||
"nickname" => user.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => false},
|
||||
"local" => true,
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "regular search with page size", %{conn: conn} do
|
||||
user = insert(:user, nickname: "aalice")
|
||||
user2 = insert(:user, nickname: "alice")
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/users?query=a&page_size=1&page=1")
|
||||
conn1 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=1")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
assert json_response(conn1, 200) == %{
|
||||
"count" => 2,
|
||||
"page_size" => 1,
|
||||
"users" => [
|
||||
|
|
@ -518,12 +599,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
]
|
||||
}
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/users?query=a&page_size=1&page=2")
|
||||
conn2 = get(conn, "/api/pleroma/admin/users?query=a&page_size=1&page=2")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
assert json_response(conn2, 200) == %{
|
||||
"count" => 2,
|
||||
"page_size" => 1,
|
||||
"users" => [
|
||||
|
|
@ -566,7 +644,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
}
|
||||
end
|
||||
|
||||
test "only local users with no query" do
|
||||
test "only local users with no query", %{admin: old_admin} do
|
||||
admin = insert(:user, info: %{is_admin: true}, nickname: "john")
|
||||
user = insert(:user, nickname: "bob")
|
||||
|
||||
|
|
@ -578,7 +656,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
|> get("/api/pleroma/admin/users?filters=local")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 2,
|
||||
"count" => 3,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
|
|
@ -596,6 +674,100 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
"roles" => %{"admin" => true, "moderator" => false},
|
||||
"local" => true,
|
||||
"tags" => []
|
||||
},
|
||||
%{
|
||||
"deactivated" => false,
|
||||
"id" => old_admin.id,
|
||||
"local" => true,
|
||||
"nickname" => old_admin.nickname,
|
||||
"roles" => %{"admin" => true, "moderator" => false},
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "load only admins", %{conn: conn, admin: admin} do
|
||||
second_admin = insert(:user, info: %{is_admin: true})
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?filters=is_admin")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 2,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => false,
|
||||
"id" => admin.id,
|
||||
"nickname" => admin.nickname,
|
||||
"roles" => %{"admin" => true, "moderator" => false},
|
||||
"local" => admin.local,
|
||||
"tags" => []
|
||||
},
|
||||
%{
|
||||
"deactivated" => false,
|
||||
"id" => second_admin.id,
|
||||
"nickname" => second_admin.nickname,
|
||||
"roles" => %{"admin" => true, "moderator" => false},
|
||||
"local" => second_admin.local,
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "load only moderators", %{conn: conn} do
|
||||
moderator = insert(:user, info: %{is_moderator: true})
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?filters=is_moderator")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 1,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => false,
|
||||
"id" => moderator.id,
|
||||
"nickname" => moderator.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => true},
|
||||
"local" => moderator.local,
|
||||
"tags" => []
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
test "load users with tags list", %{conn: conn} do
|
||||
user1 = insert(:user, tags: ["first"])
|
||||
user2 = insert(:user, tags: ["second"])
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
conn = get(conn, "/api/pleroma/admin/users?tags[]=first&tags[]=second")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"count" => 2,
|
||||
"page_size" => 50,
|
||||
"users" => [
|
||||
%{
|
||||
"deactivated" => false,
|
||||
"id" => user1.id,
|
||||
"nickname" => user1.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => false},
|
||||
"local" => user1.local,
|
||||
"tags" => ["first"]
|
||||
},
|
||||
%{
|
||||
"deactivated" => false,
|
||||
"id" => user2.id,
|
||||
"nickname" => user2.nickname,
|
||||
"roles" => %{"admin" => false, "moderator" => false},
|
||||
"local" => user2.local,
|
||||
"tags" => ["second"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -651,13 +823,18 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
end
|
||||
|
||||
describe "GET /api/pleroma/admin/invite_token" do
|
||||
test "without options" do
|
||||
setup do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/invite_token")
|
||||
|
||||
{:ok, conn: conn}
|
||||
end
|
||||
|
||||
test "without options", %{conn: conn} do
|
||||
conn = get(conn, "/api/pleroma/admin/invite_token")
|
||||
|
||||
token = json_response(conn, 200)
|
||||
invite = UserInviteToken.find_by_token!(token)
|
||||
|
|
@ -667,13 +844,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
assert invite.invite_type == "one_time"
|
||||
end
|
||||
|
||||
test "with expires_at" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
|
||||
test "with expires_at", %{conn: conn} do
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/invite_token", %{
|
||||
get(conn, "/api/pleroma/admin/invite_token", %{
|
||||
"invite" => %{"expires_at" => Date.to_string(Date.utc_today())}
|
||||
})
|
||||
|
||||
|
|
@ -686,13 +859,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
assert invite.invite_type == "date_limited"
|
||||
end
|
||||
|
||||
test "with max_use" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
|
||||
test "with max_use", %{conn: conn} do
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/invite_token", %{
|
||||
get(conn, "/api/pleroma/admin/invite_token", %{
|
||||
"invite" => %{"max_use" => 150}
|
||||
})
|
||||
|
||||
|
|
@ -704,13 +873,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
assert invite.invite_type == "reusable"
|
||||
end
|
||||
|
||||
test "with max use and expires_at" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
|
||||
test "with max use and expires_at", %{conn: conn} do
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/invite_token", %{
|
||||
get(conn, "/api/pleroma/admin/invite_token", %{
|
||||
"invite" => %{"max_use" => 150, "expires_at" => Date.to_string(Date.utc_today())}
|
||||
})
|
||||
|
||||
|
|
@ -724,25 +889,26 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|
|||
end
|
||||
|
||||
describe "GET /api/pleroma/admin/invites" do
|
||||
test "no invites" do
|
||||
setup do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/invites")
|
||||
|
||||
{:ok, conn: conn}
|
||||
end
|
||||
|
||||
test "no invites", %{conn: conn} do
|
||||
conn = get(conn, "/api/pleroma/admin/invites")
|
||||
|
||||
assert json_response(conn, 200) == %{"invites" => []}
|
||||
end
|
||||
|
||||
test "with invite" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
test "with invite", %{conn: conn} do
|
||||
{:ok, invite} = UserInviteToken.create_invite()
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> assign(:user, admin)
|
||||
|> get("/api/pleroma/admin/invites")
|
||||
conn = get(conn, "/api/pleroma/admin/invites")
|
||||
|
||||
assert json_response(conn, 200) == %{
|
||||
"invites" => [
|
||||
|
|
|
|||
|
|
@ -70,11 +70,11 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
|
|||
test "it returns specific user" do
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
insert(:user, nickname: "bob", local: true, info: %{deactivated: false})
|
||||
user = insert(:user, nickname: "bob", local: true, info: %{deactivated: false})
|
||||
|
||||
{:ok, _results, total_count} = Search.user(%{query: ""})
|
||||
|
||||
{:ok, _results, count} =
|
||||
{:ok, [^user], count} =
|
||||
Search.user(%{
|
||||
query: "Bo",
|
||||
active: true,
|
||||
|
|
@ -84,5 +84,87 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
|
|||
assert total_count == 3
|
||||
assert count == 1
|
||||
end
|
||||
|
||||
test "it returns user by domain" do
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
user = insert(:user, nickname: "some@domain.com")
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, [^user], count} = Search.user(%{query: "domain.com"})
|
||||
assert total == 3
|
||||
assert count == 1
|
||||
end
|
||||
|
||||
test "it return user by full nickname" do
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
user = insert(:user, nickname: "some@domain.com")
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, [^user], count} = Search.user(%{query: "some@domain.com"})
|
||||
assert total == 3
|
||||
assert count == 1
|
||||
end
|
||||
|
||||
test "it returns admin user" do
|
||||
admin = insert(:user, info: %{is_admin: true})
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, [^admin], count} = Search.user(%{is_admin: true})
|
||||
assert total == 3
|
||||
assert count == 1
|
||||
end
|
||||
|
||||
test "it returns moderator user" do
|
||||
moderator = insert(:user, info: %{is_moderator: true})
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, [^moderator], count} = Search.user(%{is_moderator: true})
|
||||
assert total == 3
|
||||
assert count == 1
|
||||
end
|
||||
|
||||
test "it returns users with tags" do
|
||||
user1 = insert(:user, tags: ["first"])
|
||||
user2 = insert(:user, tags: ["second"])
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, users, count} = Search.user(%{tags: ["first", "second"]})
|
||||
assert total == 4
|
||||
assert count == 2
|
||||
assert user1 in users
|
||||
assert user2 in users
|
||||
end
|
||||
|
||||
test "it returns user by display name" do
|
||||
user = insert(:user, name: "Display name")
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, [^user], count} = Search.user(%{name: "display"})
|
||||
|
||||
assert total == 3
|
||||
assert count == 1
|
||||
end
|
||||
|
||||
test "it returns user by email" do
|
||||
user = insert(:user, email: "some@example.com")
|
||||
insert(:user)
|
||||
insert(:user)
|
||||
|
||||
{:ok, _results, total} = Search.user()
|
||||
{:ok, [^user], count} = Search.user(%{email: "some@example.com"})
|
||||
|
||||
assert total == 3
|
||||
assert count == 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue