60bd2ae372
Even though it does modify the participants of the notification target in some cases, this should have been safe, as different workers are responsible for creating the notifications for each target. However, this is at best confusing, and we should ensure we don't do that.
34 lines
984 B
Ruby
34 lines
984 B
Ruby
require 'spec_helper'
|
|
|
|
describe NotificationRecipientService, services: true do
|
|
set(:user) { create(:user) }
|
|
set(:project) { create(:empty_project, :public) }
|
|
set(:issue) { create(:issue, project: project) }
|
|
|
|
set(:watcher) do
|
|
watcher = create(:user)
|
|
setting = watcher.notification_settings_for(project)
|
|
setting.level = :watch
|
|
setting.save
|
|
|
|
watcher
|
|
end
|
|
|
|
subject { described_class.new(project) }
|
|
|
|
describe '#build_recipients' do
|
|
it 'does not modify the participants of the target' do
|
|
expect { subject.build_recipients(issue, user, action: :new_issue) }
|
|
.not_to change { issue.participants(user) }
|
|
end
|
|
end
|
|
|
|
describe '#build_new_note_recipients' do
|
|
set(:note) { create(:note_on_issue, noteable: issue, project: project) }
|
|
|
|
it 'does not modify the participants of the target' do
|
|
expect { subject.build_new_note_recipients(note) }
|
|
.not_to change { note.noteable.participants(note.author) }
|
|
end
|
|
end
|
|
end
|