Fix admin api.
[akkoma] / test / web / admin_api / admin_api_controller_test.exs
1 defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
2 use Pleroma.Web.ConnCase
3
4 alias Pleroma.{Repo, User}
5
6 import Pleroma.Factory
7 import ExUnit.CaptureLog
8
9 describe "/api/pleroma/admin/user" do
10 test "Delete" do
11 admin = insert(:user, info: %{is_admin: true})
12 user = insert(:user)
13
14 conn =
15 build_conn()
16 |> assign(:user, admin)
17 |> put_req_header("accept", "application/json")
18 |> delete("/api/pleroma/admin/user?nickname=#{user.nickname}")
19
20 assert json_response(conn, 200) == user.nickname
21 end
22
23 test "Create" do
24 admin = insert(:user, info: %{is_admin: true})
25
26 conn =
27 build_conn()
28 |> assign(:user, admin)
29 |> put_req_header("accept", "application/json")
30 |> post("/api/pleroma/admin/user", %{
31 "nickname" => "lain",
32 "email" => "lain@example.org",
33 "password" => "test"
34 })
35
36 assert json_response(conn, 200) == "lain"
37 end
38 end
39
40 describe "/api/pleroma/admin/permission_group" do
41 test "GET is giving user_info" do
42 admin = insert(:user, info: %{is_admin: true})
43
44 conn =
45 build_conn()
46 |> assign(:user, admin)
47 |> put_req_header("accept", "application/json")
48 |> get("/api/pleroma/admin/permission_group/#{admin.nickname}")
49
50 assert json_response(conn, 200) == %{
51 "is_admin" => true,
52 "is_moderator" => false
53 }
54 end
55
56 test "/:right POST, can add to a permission group" do
57 admin = insert(:user, info: %{is_admin: true})
58 user = insert(:user)
59
60 conn =
61 build_conn()
62 |> assign(:user, admin)
63 |> put_req_header("accept", "application/json")
64 |> post("/api/pleroma/admin/permission_group/#{user.nickname}/admin")
65
66 assert json_response(conn, 200) == %{
67 "is_admin" => true
68 }
69 end
70
71 test "/:right DELETE, can remove from a permission group" do
72 admin = insert(:user, info: %{is_admin: true})
73 user = insert(:user, info: %{is_admin: true})
74
75 conn =
76 build_conn()
77 |> assign(:user, admin)
78 |> put_req_header("accept", "application/json")
79 |> delete("/api/pleroma/admin/permission_group/#{user.nickname}/admin")
80
81 assert json_response(conn, 200) == %{
82 "is_admin" => false
83 }
84 end
85 end
86
87 test "/api/pleroma/admin/invite_token" do
88 admin = insert(:user, info: %{is_admin: true})
89
90 conn =
91 build_conn()
92 |> assign(:user, admin)
93 |> put_req_header("accept", "application/json")
94 |> get("/api/pleroma/admin/invite_token")
95
96 assert conn.status == 200
97 end
98
99 test "/api/pleroma/admin/password_reset" do
100 admin = insert(:user, info: %{is_admin: true})
101 user = insert(:user)
102
103 conn =
104 build_conn()
105 |> assign(:user, admin)
106 |> put_req_header("accept", "application/json")
107 |> get("/api/pleroma/admin/password_reset?nickname=#{user.nickname}")
108
109 assert conn.status == 200
110 end
111 end