Simplify AuthenticationPlug
[akkoma] / test / plugs / legacy_authentication_plug_test.exs
1 defmodule Pleroma.Plugs.LegacyAuthenticationPlugTest do
2 use Pleroma.Web.ConnCase, async: true
3
4 alias Pleroma.Plugs.LegacyAuthenticationPlug
5 alias Pleroma.User
6
7 setup do
8 # password is "password"
9 user = %User{
10 id: 1,
11 name: "dude",
12 password_hash:
13 "$6$9psBWV8gxkGOZWBz$PmfCycChoxeJ3GgGzwvhlgacb9mUoZ.KUXNCssekER4SJ7bOK53uXrHNb2e4i8yPFgSKyzaW9CcmrDXWIEMtD1"
14 }
15
16 %{user: user}
17 end
18
19 test "it does nothing if a user is assigned", %{conn: conn, user: user} do
20 conn =
21 conn
22 |> assign(:auth_credentials, %{username: "dude", password: "password"})
23 |> assign(:auth_user, user)
24 |> assign(:user, %User{})
25
26 ret_conn =
27 conn
28 |> LegacyAuthenticationPlug.call(%{})
29
30 assert ret_conn == conn
31 end
32
33 test "it authenticates the auth_user if present and password is correct", %{
34 conn: conn,
35 user: user
36 } do
37 conn =
38 conn
39 |> assign(:auth_credentials, %{username: "dude", password: "password"})
40 |> assign(:auth_user, user)
41
42 conn =
43 conn
44 |> LegacyAuthenticationPlug.call(%{})
45
46 assert conn.assigns.user == user
47 end
48
49 test "it does nothing if the password is wrong", %{
50 conn: conn,
51 user: user
52 } do
53 conn =
54 conn
55 |> assign(:auth_credentials, %{username: "dude", password: "wrong_password"})
56 |> assign(:auth_user, user)
57
58 ret_conn =
59 conn
60 |> LegacyAuthenticationPlug.call(%{})
61
62 assert conn == ret_conn
63 end
64
65 test "with no credentials or user it does nothing", %{conn: conn} do
66 ret_conn =
67 conn
68 |> LegacyAuthenticationPlug.call(%{})
69
70 assert ret_conn == conn
71 end
72 end