Files
grecia/spec/system/verification/sms_spec.rb
Javi Martín 9427f01442 Use system specs instead of feature specs
We get rid of database cleaner, and JavaScript tests are faster because
between tests we now rollback transactions instead of truncating the
database.
2020-04-24 15:43:54 +02:00

79 lines
1.9 KiB
Ruby

require "rails_helper"
describe "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