Skip to content

Instantly share code, notes, and snippets.

@pinzolo
Created December 10, 2015 06:04
パスワードリセットの有効期限を設定した時のテストコード
require 'test_helper'
class Users::PasswordsControllerTest < ActionController::TestCase
setup do
@request.env['devise.mapping'] = Devise.mappings[:user]
@user = create(:user)
end
test 'メールを送信して30分後まではトークンは有効' do
post :create, user: { email: @user.email }
before = @user.reload.encrypted_password
Time.stub(:now, @user.reset_password_sent_at + 30.minutes) do
put :update, user: { password: 'new-password', password_confirmation: 'new-password', reset_password_token: reset_password_token }
end
assert_not_equal @user.reload.encrypted_password, before
end
test 'メールを送信して30分を超えたらトークンは無効' do
post :create, user: { email: @user.email }
before = @user.reload.encrypted_password
Time.stub(:now, @user.reset_password_sent_at + 30.minutes + 1.second) do
put :update, user: { password: 'new-password', password_confirmation: 'new-password', reset_password_token: reset_password_token }
end
assert_equal @user.reload.encrypted_password, before
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment