|
|
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do |
|
|
|
use Pleroma.Web.ConnCase |
|
|
|
|
|
|
|
alias Pleroma.User |
|
|
|
alias Pleroma.UserInviteToken |
|
|
|
import Pleroma.Factory |
|
|
|
|
|
|
|
describe "/api/pleroma/admin/user" do |
|
|
@@ -80,14 +81,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do |
|
|
|
user = insert(:user) |
|
|
|
follower = insert(:user) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> put_req_header("accept", "application/json") |
|
|
|
|> post("/api/pleroma/admin/user/follow", %{ |
|
|
|
"follower" => follower.nickname, |
|
|
|
"followed" => user.nickname |
|
|
|
}) |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> put_req_header("accept", "application/json") |
|
|
|
|> post("/api/pleroma/admin/user/follow", %{ |
|
|
|
"follower" => follower.nickname, |
|
|
|
"followed" => user.nickname |
|
|
|
}) |
|
|
|
|
|
|
|
user = User.get_by_id(user.id) |
|
|
|
follower = User.get_by_id(follower.id) |
|
|
@@ -104,14 +104,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do |
|
|
|
|
|
|
|
User.follow(follower, user) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> put_req_header("accept", "application/json") |
|
|
|
|> post("/api/pleroma/admin/user/unfollow", %{ |
|
|
|
"follower" => follower.nickname, |
|
|
|
"followed" => user.nickname |
|
|
|
}) |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> put_req_header("accept", "application/json") |
|
|
|
|> post("/api/pleroma/admin/user/unfollow", %{ |
|
|
|
"follower" => follower.nickname, |
|
|
|
"followed" => user.nickname |
|
|
|
}) |
|
|
|
|
|
|
|
user = User.get_by_id(user.id) |
|
|
|
follower = User.get_by_id(follower.id) |
|
|
@@ -642,4 +641,136 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do |
|
|
|
"tags" => [] |
|
|
|
} |
|
|
|
end |
|
|
|
|
|
|
|
describe "GET /api/pleroma/admin/invite_token" do |
|
|
|
test "without options" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> get("/api/pleroma/admin/invite_token") |
|
|
|
|
|
|
|
token = json_response(conn, 200) |
|
|
|
invite = UserInviteToken.find_by_token!(token) |
|
|
|
refute invite.used |
|
|
|
refute invite.expire_at |
|
|
|
refute invite.max_use |
|
|
|
assert invite.invite_type == "one_time" |
|
|
|
end |
|
|
|
|
|
|
|
test "with expire_at" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> get("/api/pleroma/admin/invite_token", %{ |
|
|
|
"invite" => %{"expire_at" => Date.to_string(Date.utc_today())} |
|
|
|
}) |
|
|
|
|
|
|
|
token = json_response(conn, 200) |
|
|
|
invite = UserInviteToken.find_by_token!(token) |
|
|
|
|
|
|
|
refute invite.used |
|
|
|
assert invite.expire_at == Date.utc_today() |
|
|
|
refute invite.max_use |
|
|
|
assert invite.invite_type == "date_limited" |
|
|
|
end |
|
|
|
|
|
|
|
test "with max_use" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> get("/api/pleroma/admin/invite_token", %{ |
|
|
|
"invite" => %{"max_use" => 150} |
|
|
|
}) |
|
|
|
|
|
|
|
token = json_response(conn, 200) |
|
|
|
invite = UserInviteToken.find_by_token!(token) |
|
|
|
refute invite.used |
|
|
|
refute invite.expire_at |
|
|
|
assert invite.max_use == 150 |
|
|
|
assert invite.invite_type == "reusable" |
|
|
|
end |
|
|
|
|
|
|
|
test "with max use and expire_at" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> get("/api/pleroma/admin/invite_token", %{ |
|
|
|
"invite" => %{"max_use" => 150, "expire_at" => Date.to_string(Date.utc_today())} |
|
|
|
}) |
|
|
|
|
|
|
|
token = json_response(conn, 200) |
|
|
|
invite = UserInviteToken.find_by_token!(token) |
|
|
|
refute invite.used |
|
|
|
assert invite.expire_at == Date.utc_today() |
|
|
|
assert invite.max_use == 150 |
|
|
|
assert invite.invite_type == "reusable_date_limited" |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe "GET /api/pleroma/admin/invites_list" do |
|
|
|
test "no invites" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> get("/api/pleroma/admin/invites_list") |
|
|
|
|
|
|
|
assert json_response(conn, 200) == %{"invites" => []} |
|
|
|
end |
|
|
|
|
|
|
|
test "with invite" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
{:ok, invite} = UserInviteToken.create_invite() |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> get("/api/pleroma/admin/invites_list") |
|
|
|
|
|
|
|
assert json_response(conn, 200) == %{ |
|
|
|
"invites" => [ |
|
|
|
%{ |
|
|
|
"expire_at" => nil, |
|
|
|
"id" => invite.id, |
|
|
|
"invite_type" => "one_time", |
|
|
|
"max_use" => nil, |
|
|
|
"token" => invite.token, |
|
|
|
"used" => false, |
|
|
|
"uses" => 0 |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe "POST /api/pleroma/admin/invite_revoke" do |
|
|
|
test "with token" do |
|
|
|
admin = insert(:user, info: %{is_admin: true}) |
|
|
|
{:ok, invite} = UserInviteToken.create_invite() |
|
|
|
|
|
|
|
conn = |
|
|
|
build_conn() |
|
|
|
|> assign(:user, admin) |
|
|
|
|> post("/api/pleroma/admin/invite_revoke", %{"token" => invite.token}) |
|
|
|
|
|
|
|
assert json_response(conn, 200) == %{ |
|
|
|
"expire_at" => nil, |
|
|
|
"id" => invite.id, |
|
|
|
"invite_type" => "one_time", |
|
|
|
"max_use" => nil, |
|
|
|
"token" => invite.token, |
|
|
|
"used" => true, |
|
|
|
"uses" => 0 |
|
|
|
} |
|
|
|
end |
|
|
|
end |
|
|
|
end |