80 lines
1.9 KiB
Ruby
80 lines
1.9 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature 'SMS Verification' do
|
|
|
|
scenario 'Verify' do
|
|
user = create(:user, residence_verified_at: Time.now)
|
|
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 'Correct code'
|
|
end
|
|
|
|
scenario 'Errors on phone number' do
|
|
user = create(:user, residence_verified_at: Time.now)
|
|
login_as(user)
|
|
|
|
visit new_sms_path
|
|
|
|
click_button 'Send'
|
|
|
|
expect(page).to have_content error_message
|
|
end
|
|
|
|
scenario 'Errors on verification code' do
|
|
user = create(:user, residence_verified_at: Time.now)
|
|
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 residence'
|
|
expect(current_path).to eq(new_residence_path)
|
|
end
|
|
|
|
scenario '5 tries allowed' do
|
|
user = create(:user, residence_verified_at: Time.now)
|
|
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 the confirmation code again'
|
|
end
|
|
|
|
expect(page).to have_content "You have reached the maximum number of verification tries. Please try again later."
|
|
expect(current_path).to eq(account_path)
|
|
|
|
visit new_sms_path
|
|
expect(page).to have_content "You have reached the maximum number of verification tries. Please try again later."
|
|
expect(current_path).to eq(account_path)
|
|
end
|
|
|
|
end |