diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-31 03:10:12 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-31 03:10:12 +0300 |
commit | f9f496e7f19f574992b9543763490fda6d920e77 (patch) | |
tree | 3b0cf2eda897e32a3e4c8f234070b2dabc593b72 /spec | |
parent | 7208156569518903735416b95a4a0d8f83255d41 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/mailers/emails/service_desk_spec.rb | 11 | ||||
-rw-r--r-- | spec/mailers/notify_spec.rb | 3 | ||||
-rw-r--r-- | spec/models/issue_spec.rb | 11 | ||||
-rw-r--r-- | spec/services/notification_service_spec.rb | 30 |
4 files changed, 24 insertions, 31 deletions
diff --git a/spec/mailers/emails/service_desk_spec.rb b/spec/mailers/emails/service_desk_spec.rb index cb74194020d..7d04b373be6 100644 --- a/spec/mailers/emails/service_desk_spec.rb +++ b/spec/mailers/emails/service_desk_spec.rb @@ -13,13 +13,8 @@ RSpec.describe Emails::ServiceDesk do let_it_be(:user) { create(:user) } let_it_be(:project) { create(:project) } let_it_be(:issue) { create(:issue, project: project) } - let_it_be(:email) { 'someone@gitlab.com' } let(:template) { double(content: template_content) } - before_all do - issue.issue_email_participants.create!(email: email) - end - before do stub_const('ServiceEmailClass', Class.new(ApplicationMailer)) @@ -77,10 +72,6 @@ RSpec.describe Emails::ServiceDesk do let(:template_content) { 'custom text' } let(:issue) { create(:issue, project: project)} - before do - issue.issue_email_participants.create!(email: email) - end - context 'when a template is in the repository' do let(:project) { create(:project, :custom_repo, files: { ".gitlab/service_desk_templates/#{template_key}.md" => template_content }) } @@ -160,7 +151,7 @@ RSpec.describe Emails::ServiceDesk do let_it_be(:note) { create(:note_on_issue, noteable: issue, project: project) } let_it_be(:default_text) { note.note } - subject { ServiceEmailClass.service_desk_new_note_email(issue.id, note.id, email) } + subject { ServiceEmailClass.service_desk_new_note_email(issue.id, note.id) } it_behaves_like 'read template from repository', 'new_note' diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index 645b015bd67..3ebc2fc1e36 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -1285,7 +1285,6 @@ RSpec.describe Notify do context 'for service desk issues' do before do issue.update!(external_author: 'service.desk@example.com') - issue.issue_email_participants.create!(email: 'service.desk@example.com') end def expect_sender(username) @@ -1334,7 +1333,7 @@ RSpec.describe Notify do describe 'new note email' do let_it_be(:first_note) { create(:discussion_note_on_issue, note: 'Hello world') } - subject { described_class.service_desk_new_note_email(issue.id, first_note.id, 'service.desk@example.com') } + subject { described_class.service_desk_new_note_email(issue.id, first_note.id) } it_behaves_like 'an unsubscribeable thread' diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb index 68917dcec77..81f045b4db1 100644 --- a/spec/models/issue_spec.rb +++ b/spec/models/issue_spec.rb @@ -1260,15 +1260,4 @@ RSpec.describe Issue do expect { issue.issue_type_supports?(:unkown_feature) }.to raise_error(ArgumentError) end end - - describe '#email_participants_emails' do - let_it_be(:issue) { create(:issue) } - - it 'returns a list of emails' do - participant1 = issue.issue_email_participants.create(email: 'a@gitlab.com') - participant2 = issue.issue_email_participants.create(email: 'b@gitlab.com') - - expect(issue.email_participants_emails).to contain_exactly(participant1.email, participant2.email) - end - end end diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb index e4ad8909785..9431c023850 100644 --- a/spec/services/notification_service_spec.rb +++ b/spec/services/notification_service_spec.rb @@ -297,17 +297,17 @@ RSpec.describe NotificationService, :mailer do describe 'Notes' do context 'issue note' do let_it_be(:project) { create(:project, :private) } - let_it_be_with_reload(:issue) { create(:issue, project: project, assignees: [assignee]) } + let_it_be(:issue) { create(:issue, project: project, assignees: [assignee]) } let_it_be(:mentioned_issue) { create(:issue, assignees: issue.assignees) } let_it_be_with_reload(:author) { create(:user) } let(:note) { create(:note_on_issue, author: author, noteable: issue, project_id: issue.project_id, note: '@mention referenced, @unsubscribed_mentioned and @outsider also') } subject { notification.new_note(note) } - context 'issue_email_participants' do + context 'on service desk issue' do before do allow(Notify).to receive(:service_desk_new_note_email) - .with(Integer, Integer, String).and_return(mailer) + .with(Integer, Integer).and_return(mailer) allow(::Gitlab::IncomingEmail).to receive(:enabled?) { true } allow(::Gitlab::IncomingEmail).to receive(:supports_wildcard?) { true } @@ -318,7 +318,7 @@ RSpec.describe NotificationService, :mailer do def should_email! expect(Notify).to receive(:service_desk_new_note_email) - .with(issue.id, note.id, issue.external_author) + .with(issue.id, note.id) end def should_not_email! @@ -347,19 +347,33 @@ RSpec.describe NotificationService, :mailer do let(:project) { issue.project } let(:note) { create(:note, noteable: issue, project: project) } - context 'do not exist' do + context 'a non-service-desk issue' do it_should_not_email! end - context 'do exist' do - let!(:issue_email_participant) { issue.issue_email_participants.create!(email: 'service.desk@example.com') } - + context 'a service-desk issue' do before do issue.update!(external_author: 'service.desk@example.com') project.update!(service_desk_enabled: true) end it_should_email! + + context 'where the project has disabled the feature' do + before do + project.update!(service_desk_enabled: false) + end + + it_should_not_email! + end + + context 'when the support bot has unsubscribed' do + before do + issue.unsubscribe(User.support_bot, project) + end + + it_should_not_email! + end end end |