c0fe2cf972e8453e58634dc167e106fa28a6909c
[akkoma] / test / plugs / admin_secret_authentication_plug_test.exs
1 defmodule Pleroma.Plugs.AdminSecretAuthenticationPlugTest do
2 use Pleroma.Web.ConnCase, async: true
3 import Pleroma.Factory
4
5 alias Pleroma.Plugs.AdminSecretAuthenticationPlug
6
7 test "does nothing if a user is assigned", %{conn: conn} do
8 user = insert(:user)
9
10 conn =
11 conn
12 |> assign(:user, user)
13
14 ret_conn =
15 conn
16 |> AdminSecretAuthenticationPlug.call(%{})
17
18 assert conn == ret_conn
19 end
20
21 test "with secret set and given in the 'admin_token' parameter, it assigns an admin user", %{
22 conn: conn
23 } do
24 Pleroma.Config.put(:admin_token, "password123")
25
26 conn =
27 %{conn | params: %{"admin_token" => "wrong_password"}}
28 |> AdminSecretAuthenticationPlug.call(%{})
29
30 refute conn.assigns[:user]
31
32 conn =
33 %{conn | params: %{"admin_token" => "password123"}}
34 |> AdminSecretAuthenticationPlug.call(%{})
35
36 assert conn.assigns[:user].info.is_admin
37 end
38 end