Merge branch 'release/2.4.1' into chores/2.4.1-develop
[akkoma] / test / pleroma / web / plugs / user_is_staff_plug_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.Plugs.UserIsStaffPlugTest do
6 use Pleroma.Web.ConnCase, async: true
7
8 alias Pleroma.Web.Plugs.UserIsStaffPlug
9 import Pleroma.Factory
10
11 test "accepts a user that is an admin" do
12 user = insert(:user, is_admin: true)
13
14 conn = assign(build_conn(), :user, user)
15
16 ret_conn = UserIsStaffPlug.call(conn, %{})
17
18 assert conn == ret_conn
19 end
20
21 test "accepts a user that is a moderator" do
22 user = insert(:user, is_moderator: true)
23
24 conn = assign(build_conn(), :user, user)
25
26 ret_conn = UserIsStaffPlug.call(conn, %{})
27
28 assert conn == ret_conn
29 end
30
31 test "denies a user that isn't a staff member" do
32 user = insert(:user)
33
34 conn =
35 build_conn()
36 |> assign(:user, user)
37 |> UserIsStaffPlug.call(%{})
38
39 assert conn.status == 403
40 end
41
42 test "denies when a user isn't set" do
43 conn = UserIsStaffPlug.call(build_conn(), %{})
44
45 assert conn.status == 403
46 end
47 end