class UserObserver < ActiveRecord::Observer
def after_create(user)
log_info("User \"#{user.name}\" (#{user.email}) was created")
- unless user.extern_uid?
- Notify.new_user_email(user.id, user.password).deliver
- end
+
- Notify.delay.new_user_email(user.id, user.password)
++ # Dont email omniauth created users
++ Notify.delay.new_user_email(user.id, user.password) unless user.extern_uid?
end
def after_destroy user
end
context 'when a new user is created' do
- let(:notification) { double :notification }
-
- it 'sends an email unless external' do
- user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: false)
- notification.should_receive(:deliver)
- Notify.should_receive(:new_user_email).with(user.id, user.password).and_return(notification)
-
- subject.after_create(user)
+ it 'sends an email' do
+ Notify.should_receive(:new_user_email)
+ create(:user)
end
- user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: true)
- Notify.should_not_receive(:new_user_email)
-
- subject.after_create(user)
+ it 'no email for external' do
++ Notify.should_receive(:new_user_email)
++ create(:user, extern_uid: '32442eEfsafada')
+ end
+
it 'trigger logger' do
+ user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: false)
Gitlab::AppLogger.should_receive(:info)
- subject.after_create(user)
+ create(:user)
end
end
end