emails: send verification mail when user changes address.

This commit is contained in:
evazion
2020-03-14 18:32:00 -05:00
parent 167fe51a8a
commit d860fab7f5
7 changed files with 61 additions and 2 deletions

View File

@@ -3,7 +3,7 @@ require "test_helper"
class EmailsControllerTest < ActionDispatch::IntegrationTest
context "in all cases" do
setup do
@user = create(:user, email_address: build(:email_address, { address: "bob@ogres.net" }))
@user = create(:user, email_address: build(:email_address, { address: "bob@ogres.net", is_verified: false }))
end
context "#edit" do
@@ -20,6 +20,7 @@ class EmailsControllerTest < ActionDispatch::IntegrationTest
assert_redirected_to(settings_path)
assert_equal("abc@ogres.net", @user.reload.email_address.address)
assert_enqueued_email_with UserMailer, :email_change_confirmation, args: [@user]
end
end
@@ -29,6 +30,19 @@ class EmailsControllerTest < ActionDispatch::IntegrationTest
assert_response :success
assert_equal("bob@ogres.net", @user.reload.email_address.address)
assert_no_emails
end
end
end
context "#verify" do
context "with a correct verification key" do
should "mark the email address as verified" do
assert_equal(false, @user.reload.email_address.is_verified)
get_auth verify_user_email_path(@user), @user, params: { email_verification_key: Danbooru::MessageVerifier.new(:email_verification_key).generate(@user.email_address.id) }
assert_redirected_to @user
assert_equal(true, @user.reload.email_address.is_verified)
end
end
end