Most of the new settings aren't relevant to us. We do have to fix some tests to work around a Rails bug. `assert_enqueued_email_with` uses the wrong queue, so we have to specify it explicitly. This is fixed in Rails HEAD but not yet released.
37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
require 'test_helper'
|
|
|
|
class PasswordResetsControllerTest < ActionDispatch::IntegrationTest
|
|
context "The passwords resets controller" do
|
|
context "show action" do
|
|
should "work" do
|
|
get password_reset_path
|
|
assert_response :success
|
|
end
|
|
end
|
|
|
|
context "create action" do
|
|
should "should send a password reset email if the user has a verified email address" do
|
|
@user = create(:user, email_address: build(:email_address))
|
|
post password_reset_path, params: { user: { name: @user.name } }
|
|
|
|
assert_redirected_to new_session_path
|
|
assert_enqueued_email_with UserMailer, :password_reset, args: [@user], queue: "default"
|
|
end
|
|
|
|
should "should fail if the user doesn't have a verified email address" do
|
|
@user = create(:user)
|
|
post password_reset_path, params: { user: { name: @user.name } }
|
|
|
|
assert_redirected_to @user
|
|
assert_no_enqueued_emails
|
|
end
|
|
|
|
should "fail if the user does not exist" do
|
|
post password_reset_path, params: { user: { name: "qoi23oti" } }
|
|
|
|
assert_redirected_to password_reset_path
|
|
end
|
|
end
|
|
end
|
|
end
|