Fix password reset for non-test env
Fixes `Plug.Conn.NotSentError` that causes a 5xx error in response instead of 404 and 400. Fixes pattern matching error caused by different response format in test and non-test env: `Pleroma.Emails.Mailer.deliver_async` returns :ok when PleromaJobQueue is enabled and `{:ok, _}` when it's disabled. In tests, it's disabled.
This commit is contained in:
parent
ce73d5f6a5
commit
4bf2bb9cff
5 changed files with 10 additions and 8 deletions
|
@ -1826,10 +1826,10 @@ def password_reset(conn, params) do
|
|||
|> json("")
|
||||
else
|
||||
{:error, "unknown user"} ->
|
||||
put_status(conn, :not_found)
|
||||
send_resp(conn, :not_found, "")
|
||||
|
||||
{:error, _} ->
|
||||
put_status(conn, :bad_request)
|
||||
send_resp(conn, :bad_request, "")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -221,6 +221,8 @@ def password_reset(nickname_or_email) do
|
|||
user
|
||||
|> UserEmail.password_reset_email(token_record.token)
|
||||
|> Mailer.deliver_async()
|
||||
|
||||
{:ok, :enqueued}
|
||||
else
|
||||
false ->
|
||||
{:error, "bad user identifier"}
|
||||
|
|
|
@ -440,10 +440,10 @@ def password_reset(conn, params) do
|
|||
json_response(conn, :no_content, "")
|
||||
else
|
||||
{:error, "unknown user"} ->
|
||||
put_status(conn, :not_found)
|
||||
send_resp(conn, :not_found, "")
|
||||
|
||||
{:error, _} ->
|
||||
put_status(conn, :bad_request)
|
||||
send_resp(conn, :bad_request, "")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -3849,14 +3849,14 @@ test "it sends an email to user", %{user: user} do
|
|||
test "it returns 404 when user is not found", %{conn: conn, user: user} do
|
||||
conn = post(conn, "/auth/password?email=nonexisting_#{user.email}")
|
||||
assert conn.status == 404
|
||||
refute conn.resp_body
|
||||
assert conn.resp_body == ""
|
||||
end
|
||||
|
||||
test "it returns 400 when user is not local", %{conn: conn, user: user} do
|
||||
{:ok, user} = Repo.update(Changeset.change(user, local: false))
|
||||
conn = post(conn, "/auth/password?email=#{user.email}")
|
||||
assert conn.status == 400
|
||||
refute conn.resp_body
|
||||
assert conn.resp_body == ""
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1119,14 +1119,14 @@ test "it sends an email to user", %{user: user} do
|
|||
test "it returns 404 when user is not found", %{conn: conn, user: user} do
|
||||
conn = post(conn, "/api/account/password_reset?email=nonexisting_#{user.email}")
|
||||
assert conn.status == 404
|
||||
refute conn.resp_body
|
||||
assert conn.resp_body == ""
|
||||
end
|
||||
|
||||
test "it returns 400 when user is not local", %{conn: conn, user: user} do
|
||||
{:ok, user} = Repo.update(Changeset.change(user, local: false))
|
||||
conn = post(conn, "/api/account/password_reset?email=#{user.email}")
|
||||
assert conn.status == 400
|
||||
refute conn.resp_body
|
||||
assert conn.resp_body == ""
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue