Attempt to resolve merge conflict
[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 import Mock
8
9 setup do
10 # password is "password"
11 user = %User{
12 id: 1,
13 name: "dude",
14 password_hash:
15 "$6$9psBWV8gxkGOZWBz$PmfCycChoxeJ3GgGzwvhlgacb9mUoZ.KUXNCssekER4SJ7bOK53uXrHNb2e4i8yPFgSKyzaW9CcmrDXWIEMtD1"
16 }
17
18 %{user: user}
19 end
20
21 test "it does nothing if a user is assigned", %{conn: conn, user: user} do
22 conn =
23 conn
24 |> assign(:auth_credentials, %{username: "dude", password: "password"})
25 |> assign(:auth_user, user)
26 |> assign(:user, %User{})
27
28 ret_conn =
29 conn
30 |> LegacyAuthenticationPlug.call(%{})
31
32 assert ret_conn == conn
33 end
34
35 test "it authenticates the auth_user if present and password is correct and resets the password",
36 %{
37 conn: conn,
38 user: user
39 } do
40 conn =
41 conn
42 |> assign(:auth_credentials, %{username: "dude", password: "password"})
43 |> assign(:auth_user, user)
44
45 conn =
46 with_mock User,
47 reset_password: fn user, %{password: password, password_confirmation: password} ->
48 send(self(), :reset_password)
49 {:ok, user}
50 end do
51 conn
52 |> LegacyAuthenticationPlug.call(%{})
53 end
54
55 assert_received :reset_password
56 assert conn.assigns.user == user
57 end
58
59 test "it does nothing if the password is wrong", %{
60 conn: conn,
61 user: user
62 } do
63 conn =
64 conn
65 |> assign(:auth_credentials, %{username: "dude", password: "wrong_password"})
66 |> assign(:auth_user, user)
67
68 ret_conn =
69 conn
70 |> LegacyAuthenticationPlug.call(%{})
71
72 assert conn == ret_conn
73 end
74
75 test "with no credentials or user it does nothing", %{conn: conn} do
76 ret_conn =
77 conn
78 |> LegacyAuthenticationPlug.call(%{})
79
80 assert ret_conn == conn
81 end
82 end