From d7c421d92df34725e8eb6a1d12224f7cbc57ebf3 Mon Sep 17 00:00:00 2001 From: Brian van Burken Date: Mon, 14 Apr 2014 17:16:05 +0200 Subject: [PATCH] Valid token for reset password tested. --- spec/acceptance/reset_password_token.rb | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+), 0 deletions(-) create mode 100644 spec/acceptance/reset_password_token.rb diff --git a/spec/acceptance/reset_password_token.rb b/spec/acceptance/reset_password_token.rb new file mode 100644 index 0000000..4e342ce --- /dev/null +++ b/spec/acceptance/reset_password_token.rb @@ -0,0 +1,31 @@ +require 'acceptance/acceptance_helper' + +feature 'password reset token' do + let(:user) { Fabricate :user } + + scenario 'receives correct password reset token' do + host = ActionMailer::Base.default_url_options.values_at(:host).first + port = ActionMailer::Base.default_url_options.values_at(:port).first + port = port.blank? ? '' : ':' + port + regex = %r{http://#{host}#{port}/users/password/edit\?reset_password_token=([A-Za-z0-9\-_]+)} + + visit 'https://brighterr.herokuapp.com/users/password/new' + fill_in 'Email', with: user.email + click_button 'Send me reset password instructions' + expect(page).to have_content I18n.t('devise.passwords.send_instructions') + + mail = ActionMailer::Base.deliveries.last + expect(mail.subject).to match(/Reset password instructions/) + expect(mail.body.encoded).to_not be_empty + expect(mail.body.encoded).to match(/change your password/) + expect(mail.body.encoded).to match(regex) + if mail.body.encoded =~ regex + visit "/users/password/edit?reset_password_token=#{$1}" + expect(page).to have_content 'Change your password' + fill_in 'New password', with: 'test12345' + fill_in 'Type your new password again', with: 'test12345' + click_button 'Change my password' + expect(page).to_not have_content 'Reset password token is invalid' + end + end +end -- libgit2 0.21.2