Fixed duplicated issue note email notifications.
Fixes #2560 (closed)
See issue for the details.
Without uniq
modified tests were failing with:
Failure/Error: notification.new_note(note)
(Notify (class)).note_issue_email(21, 1)
expected: 1 time with arguments: (21, 1)
received: 2 times with arguments: (21, 1)
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/extensions/action_mailer.rb:17:in `public_send'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/extensions/action_mailer.rb:17:in `perform'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/testing.rb:74:in `block in raw_push'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/testing.rb:69:in `each'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/testing.rb:69:in `raw_push'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/client.rb:68:in `push'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/worker.rb:85:in `client_push'
# /home/bak1an/.rvm/gems/ruby-2.1.6@gitlab/gems/sidekiq-3.3.0/lib/sidekiq/extensions/generic_proxy.rb:19:in `method_missing'
# ./app/services/notification_service.rb:144:in `block in new_note'
# ./app/services/notification_service.rb:143:in `each'
# ./app/services/notification_service.rb:143:in `new_note'
# ./spec/services/notification_service_spec.rb:63:in `block (5 levels) in <top (required)>'
I have also added once
to all should_email
checks within notification_service_spec.rb
since it's probably the correct behavior to notify users only once on the same event. Nothing else failed out of the box but we can keep these assertions for future.