Files
grecia/spec/features/verification/sms_spec.rb
Bertocq 7f14544f71 Enable Capybara/CurrentPathExpectation cop & fix issues
Read cop description http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation to better understand reasons behind enforcing this rule

On some cases the `only_path: true` was needed as argument of `have_current_path` matcher to avoid comparing the url parameters and just checking the path.
2018-01-06 23:31:41 +01:00

81 lines
2.0 KiB
Ruby

require 'rails_helper'
feature 'SMS Verification' do
scenario 'Verify' do
user = create(:user, residence_verified_at: Time.current)
login_as(user)
visit new_sms_path
fill_in 'sms_phone', with: "611111111"
click_button 'Send'
expect(page).to have_content 'Security code confirmation'
user = user.reload
fill_in 'sms_confirmation_code', with: user.sms_confirmation_code
click_button 'Send'
expect(page).to have_content 'Code correct'
end
scenario 'Errors on phone number' do
user = create(:user, residence_verified_at: Time.current)
login_as(user)
visit new_sms_path
click_button 'Send'
expect(page).to have_content error_message("phone")
end
scenario 'Errors on verification code' do
user = create(:user, residence_verified_at: Time.current)
login_as(user)
visit new_sms_path
fill_in 'sms_phone', with: "611111111"
click_button 'Send'
expect(page).to have_content 'Security code confirmation'
click_button 'Send'
expect(page).to have_content 'Incorrect confirmation code'
end
scenario 'Deny access unless residency verified' do
user = create(:user)
login_as(user)
visit new_sms_path
expect(page).to have_content 'You have not yet confirmed your residency'
expect(page).to have_current_path(new_residence_path)
end
scenario '5 tries allowed' do
user = create(:user, residence_verified_at: Time.current)
login_as(user)
visit new_sms_path
5.times do
fill_in 'sms_phone', with: "611111111"
click_button 'Send'
click_link 'Click here to send it again'
end
expect(page).to have_content "You have reached the maximum number of attempts. Please try again later."
expect(page).to have_current_path(account_path)
visit new_sms_path
expect(page).to have_content "You have reached the maximum number of attempts. Please try again later."
expect(page).to have_current_path(account_path)
end
end