diff --git a/app/models/user.rb b/app/models/user.rb index 88599ab75c4..f1ac710e8e9 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -209,8 +209,10 @@ class User < ApplicationRecord increment(:sign_in_count) if new_sign_in - save(validate: false) unless new_record? - prepare_returning_user! + unless new_record? + save(validate: false) + prepare_returning_user! + end end def pending? diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 4ea2e6a79ca..187f05f02e8 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -208,9 +208,13 @@ RSpec.describe User do context 'with a new user' do let(:user) { Fabricate.build :user } + before { allow(ActivityTracker).to receive(:record) } + it 'does not persist the user' do expect { user.update_sign_in! } .to_not change(user, :persisted?).from(false) + expect(ActivityTracker) + .to_not have_received(:record).with('activity:logins', anything) end end end