The old password reset flow: * User requests a password reset. * Danbooru generates a password reset nonce. * Danbooru emails user a password reset confirmation link. * User follows link to password reset confirmation page. * The link contains a nonce authenticating the user. * User confirms password reset. * Danbooru resets user's password to a random string. * Danbooru emails user their new password in plaintext. The new password reset flow: * User requests a password reset. * Danbooru emails user a password reset link. * User follows link to password edit page. * The link contains a signed_user_id param authenticating the user. * User changes their own password.
26 lines
605 B
Ruby
26 lines
605 B
Ruby
require 'test_helper'
|
|
|
|
class PasswordResetsControllerTest < ActionDispatch::IntegrationTest
|
|
context "The passwords resets controller" do
|
|
setup do
|
|
@user = create(:user)
|
|
end
|
|
|
|
context "show action" do
|
|
should "work" do
|
|
get password_reset_path
|
|
assert_response :success
|
|
end
|
|
end
|
|
|
|
context "create action" do
|
|
should "work" do
|
|
post password_reset_path, params: { user: { name: @user.name } }
|
|
|
|
assert_redirected_to new_session_path
|
|
assert_enqueued_email_with UserMailer, :password_reset, args: [@user]
|
|
end
|
|
end
|
|
end
|
|
end
|