87 lines
2.6 KiB
Ruby
87 lines
2.6 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Level three verification" do
|
|
scenario "Verification with residency and verified sms" do
|
|
allow_any_instance_of(Verification::Sms).to receive(:generate_confirmation_code).and_return("2015")
|
|
create(:geozone)
|
|
user = create(:user)
|
|
|
|
verified_user = create(:verified_user,
|
|
document_number: "12345678Z",
|
|
document_type: "1",
|
|
phone: "611111111")
|
|
|
|
login_as(user)
|
|
|
|
visit account_path
|
|
click_link "Verify my account"
|
|
|
|
verify_residence
|
|
|
|
within("#verified_user_#{verified_user.id}_phone") do
|
|
click_button "Send code"
|
|
end
|
|
|
|
expect(page).to have_content "Security code confirmation"
|
|
|
|
fill_in "sms_confirmation_code", with: "2015"
|
|
click_button "Send"
|
|
|
|
expect(page).to have_content "Code correct. Your account is now verified"
|
|
|
|
expect(page).not_to have_link "Verify my account"
|
|
expect(page).to have_content "Account verified"
|
|
end
|
|
|
|
scenario "Verification with residency and verified email" do
|
|
create(:geozone)
|
|
user = create(:user)
|
|
|
|
verified_user = create(:verified_user,
|
|
document_number: "12345678Z",
|
|
document_type: "1",
|
|
email: "rock@example.com")
|
|
|
|
login_as(user)
|
|
|
|
visit account_path
|
|
click_link "Verify my account"
|
|
|
|
verify_residence
|
|
|
|
within("#verified_user_#{verified_user.id}_email") do
|
|
click_button "Send code"
|
|
end
|
|
|
|
expect(page).to have_content "We have sent a confirmation email to your account: rock@example.com"
|
|
|
|
sent_token = /.*email_verification_token=(.*)".*/.match(ActionMailer::Base.deliveries.last.body.to_s)[1]
|
|
visit email_path(email_verification_token: sent_token)
|
|
|
|
expect(page).to have_content "You are a verified user"
|
|
|
|
expect(page).not_to have_link "Verify my account"
|
|
expect(page).to have_content "Account verified"
|
|
end
|
|
|
|
scenario "Verification with residency and sms and letter" do
|
|
allow_any_instance_of(Verification::Sms).to receive(:generate_confirmation_code).and_return("1234")
|
|
create(:geozone)
|
|
user = create(:user)
|
|
login_as(user)
|
|
|
|
visit account_path
|
|
click_link "Verify my account"
|
|
|
|
verify_residence
|
|
confirm_phone(code: "1234")
|
|
|
|
click_button "Send me a letter with the code"
|
|
|
|
expect(page).to have_content "Thank you for requesting your maximum security code " \
|
|
"(only required for the final votes). In a few days " \
|
|
"we will send it to the address featuring in the data " \
|
|
"we have on file."
|
|
end
|
|
end
|