about summary refs log tree commit diff
path: root/spec/models
diff options
context:
space:
mode:
authorPatrick Figel <patrick@figel.email>2018-01-05 00:15:35 +0100
committerEugen Rochko <eugen@zeonfederated.com>2018-01-05 00:15:35 +0100
commit5ec25ff3e1c53a4feab1e9b9a3f1660cca538c23 (patch)
tree0ce4c7b587c6fe35d4f1fb27cfdf394b8dc4bec9 /spec/models
parent49e296e1b03ffe2b17fb390b6ad298172b25040f (diff)
Fix email confirmation link not updating email (#6187)
A change introduced in #6125 prevents
`Devise::Models::Confirmable#confirm` from being called for existing
users, which in turn leads to `email` not being set to
`unconfirmed_email`, breaking email updates. This also adds a test
that would've caught this issue.
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/user_spec.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 5ed7ed88b..8171c939a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -148,6 +148,14 @@ RSpec.describe User, type: :model do
     end
   end
 
+  describe '#confirm' do
+    it 'sets email to unconfirmed_email' do
+      user = Fabricate.build(:user, confirmed_at: Time.now.utc, unconfirmed_email: 'new-email@example.com')
+      user.confirm
+      expect(user.email).to eq 'new-email@example.com'
+    end
+  end
+
   describe '#disable_two_factor!' do
     it 'saves false for otp_required_for_login' do
       user = Fabricate.build(:user, otp_required_for_login: true)