Web.AdminAPI.AdminAPIControllerTest: New Test
[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) == admin.info
51 end
52
53 test "/:right POST, can add to a permission group" do
54 admin = insert(:user, info: %{"is_admin" => true})
55 user = insert(:user)
56
57 user_info =
58 user.info
59 |> Map.put("is_admin", true)
60
61 conn =
62 build_conn()
63 |> assign(:user, admin)
64 |> put_req_header("accept", "application/json")
65 |> post("/api/pleroma/admin/permission_group/#{user.nickname}/admin")
66
67 assert json_response(conn, 200) == user_info
68 end
69
70 test "/:right DELETE, can remove from a permission group" do
71 admin = insert(:user, info: %{"is_admin" => true})
72 user = insert(:user, info: %{"is_admin" => true})
73
74 user_info =
75 user.info
76 |> Map.put("is_admin", false)
77
78 conn =
79 build_conn()
80 |> assign(:user, admin)
81 |> put_req_header("accept", "application/json")
82 |> delete("/api/pleroma/admin/permission_group/#{user.nickname}/admin")
83
84 assert json_response(conn, 200) == user_info
85 end
86 end
87
88 test "/api/pleroma/admin/invite_token" do
89 admin = insert(:user, info: %{"is_admin" => true})
90
91 conn =
92 build_conn()
93 |> assign(:user, admin)
94 |> put_req_header("accept", "application/json")
95 |> get("/api/pleroma/admin/invite_token")
96
97 assert conn.status == 200
98 end
99
100 test "/api/pleroma/admin/password_reset" do
101 admin = insert(:user, info: %{"is_admin" => true})
102 user = insert(:user, info: %{"is_admin" => true})
103
104 conn =
105 build_conn()
106 |> assign(:user, admin)
107 |> put_req_header("accept", "application/json")
108 |> get("/api/pleroma/admin/password_reset?nickname=#{user.nickname}")
109
110 assert conn.status == 200
111 end
112 end