spec/system/verification/email_spec.rb
require "rails_helper"
describe "Verify email" do
scenario "Verify" do
user = create(:user,
residence_verified_at: Time.current,
document_number: "12345678Z",
document_type: "dni")
verified_user = create(:verified_user,
document_number: "12345678Z",
document_type: "dni",
email: "rock@example.com")
login_as(user)
visit verified_user_path
within("#verified_user_#{verified_user.id}_email") do
expect(page).to have_content "roc*@example.com"
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 "Errors on token verification" do
user = create(:user, residence_verified_at: Time.current)
login_as(user)
visit email_path(email_verification_token: "1234")
expect(page).to have_content "Verification code incorrect"
end
scenario "Errors on sending confirmation email" do
user = create(:user,
residence_verified_at: Time.current,
document_number: "12345678Z",
document_type: "dni")
verified_user = create(:verified_user,
document_number: "12345678Z",
document_type: "dni",
email: "rock@example.com")
login_as(user)
visit verified_user_path
verified_user.destroy!
click_button "Send code"
expect(page).to have_content "There was a problem with sending an email to your account"
end
end