Leon4gr45 commited on
Commit
b0c5f00
·
verified ·
1 Parent(s): 97e4972

Delete test/plausible_web/live/reset_password_form_test.exs with huggingface_hub

Browse files
test/plausible_web/live/reset_password_form_test.exs DELETED
@@ -1,102 +0,0 @@
1
- defmodule PlausibleWeb.Live.ResetPasswordFormTest do
2
- use PlausibleWeb.ConnCase, async: true
3
-
4
- import Phoenix.ChannelTest
5
- import Phoenix.LiveViewTest
6
-
7
- alias Plausible.Auth.User
8
- alias Plausible.Auth.Token
9
- alias Plausible.Auth.TOTP
10
- alias Plausible.Repo
11
-
12
- describe "/password/reset" do
13
- test "sets new password with valid token", %{conn: conn} do
14
- user = insert(:user)
15
- token = Token.sign_password_reset(user.email)
16
-
17
- lv = get_liveview(conn, "/password/reset?token=#{token}")
18
-
19
- type_into_passowrd(lv, "very-secret-and-very-long-123")
20
- html = lv |> element("form") |> render_submit()
21
-
22
- csrf_input = find(html, ~s|input[name="_csrf_token"]|)
23
- password_input = find(html, ~s|input[name="user[password]"]|)
24
- assert String.length(text_of_attr(csrf_input, "value")) > 0
25
- assert text_of_attr(password_input, "value") == "very-secret-and-very-long-123"
26
- assert %{password_hash: new_hash} = Repo.one(User)
27
- assert new_hash != user.password_hash
28
- end
29
-
30
- test "reset's user's TOTP token when present", %{conn: conn} do
31
- user = insert(:user)
32
- {:ok, user, _} = TOTP.initiate(user)
33
- {:ok, user, _} = TOTP.enable(user, :skip_verify)
34
-
35
- token = Token.sign_password_reset(user.email)
36
-
37
- lv = get_liveview(conn, "/password/reset?token=#{token}")
38
-
39
- type_into_passowrd(lv, "very-secret-and-very-long-123")
40
- lv |> element("form") |> render_submit()
41
-
42
- updated_user = Repo.reload!(user)
43
-
44
- assert byte_size(updated_user.totp_token) > 0
45
- assert updated_user.totp_token != user.totp_token
46
- end
47
-
48
- test "renders error when new password fails validation", %{conn: conn} do
49
- user = insert(:user)
50
- token = Token.sign_password_reset(user.email)
51
-
52
- lv = get_liveview(conn, "/password/reset?token=#{token}")
53
-
54
- type_into_passowrd(lv, "too-short")
55
- html = lv |> element("form") |> render_submit()
56
-
57
- assert html =~ "Password is too weak"
58
-
59
- assert %{password_hash: hash} = Repo.one(User)
60
- assert hash == user.password_hash
61
- end
62
- end
63
-
64
- describe "/password/reset with logged in user" do
65
- setup [:create_user, :log_in]
66
-
67
- test "revokes all active user sessions when present", %{conn: conn, user: user} do
68
- assert [active_session] = Repo.preload(user, :sessions).sessions
69
- live_socket_id = "user_sessions:" <> Base.url_encode64(active_session.token)
70
- Phoenix.PubSub.subscribe(Plausible.PubSub, live_socket_id)
71
-
72
- another_session =
73
- user
74
- |> Plausible.Auth.UserSession.new_session("Some Device")
75
- |> Repo.insert!()
76
-
77
- token = Token.sign_password_reset(user.email)
78
-
79
- lv = get_liveview(conn, "/password/reset?token=#{token}")
80
-
81
- type_into_passowrd(lv, "very-secret-and-very-long-123")
82
- lv |> element("form") |> render_submit()
83
-
84
- assert [] = Repo.preload(user, :sessions).sessions
85
- assert_broadcast "disconnect", %{}
86
- refute Repo.reload(another_session)
87
- end
88
- end
89
-
90
- defp get_liveview(conn, url) do
91
- conn = assign(conn, :live_module, PlausibleWeb.Live.ResetPasswordForm)
92
- {:ok, lv, _html} = live(conn, url)
93
-
94
- lv
95
- end
96
-
97
- defp type_into_passowrd(lv, text) do
98
- lv
99
- |> element("form")
100
- |> render_change(%{"user[password]" => text})
101
- end
102
- end