Simplify AuthenticationPlug
[akkoma] / test / plugs / authentication_plug_test.exs
1 defmodule Pleroma.Plugs.AuthenticationPlugTest do
2 use Pleroma.Web.ConnCase, async: true
3
4 alias Pleroma.Plugs.AuthenticationPlug
5 alias Pleroma.User
6
7 setup %{conn: conn} do
8 user = %User{
9 id: 1,
10 name: "dude",
11 password_hash: Comeonin.Pbkdf2.hashpwsalt("guy")
12 }
13
14 conn =
15 conn
16 |> assign(:auth_user, user)
17
18 %{user: user, conn: conn}
19 end
20
21 test "it does nothing if a user is assigned", %{conn: conn} do
22 conn =
23 conn
24 |> assign(:user, %User{})
25
26 ret_conn =
27 conn
28 |> AuthenticationPlug.call(%{})
29
30 assert ret_conn == conn
31 end
32
33 test "with a correct password in the credentials, it assigns the auth_user", %{conn: conn} do
34 conn =
35 conn
36 |> assign(:auth_credentials, %{password: "guy"})
37 |> AuthenticationPlug.call(%{})
38
39 assert conn.assigns.user == conn.assigns.auth_user
40 end
41
42 test "with a wrong password in the credentials, it does nothing", %{conn: conn} do
43 conn =
44 conn
45 |> assign(:auth_credentials, %{password: "wrong"})
46
47 ret_conn =
48 conn
49 |> AuthenticationPlug.call(%{})
50
51 assert conn == ret_conn
52 end
53 end