Also treat newlines as separator, as people would do that
Before this fix, I don't know if those emails would work having newlines in them.
This commit is contained in:
parent
46bdcd6405
commit
5720bce113
|
@ -80,6 +80,6 @@ class PipelinesEmailService < Service
|
|||
end
|
||||
|
||||
def retrieve_recipients(data)
|
||||
recipients.to_s.split(',').reject(&:blank?)
|
||||
recipients.to_s.split(/[,(?:\r?\n) ]+/).reject(&:empty?)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,7 +6,8 @@ describe PipelinesEmailService, :mailer do
|
|||
end
|
||||
|
||||
let(:project) { create(:project, :repository) }
|
||||
let(:recipient) { 'test@gitlab.com' }
|
||||
let(:recipients) { 'test@gitlab.com' }
|
||||
let(:receivers) { [recipients] }
|
||||
|
||||
let(:data) do
|
||||
Gitlab::DataBuilder::Pipeline.build(pipeline)
|
||||
|
@ -48,18 +49,24 @@ describe PipelinesEmailService, :mailer do
|
|||
|
||||
shared_examples 'sending email' do
|
||||
before do
|
||||
subject.recipients = recipients
|
||||
|
||||
perform_enqueued_jobs do
|
||||
run
|
||||
end
|
||||
end
|
||||
|
||||
it 'sends email' do
|
||||
should_only_email(double(notification_email: recipient), kind: :bcc)
|
||||
emails = receivers.map { |r| double(notification_email: r) }
|
||||
|
||||
should_only_email(*emails, kind: :bcc)
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples 'not sending email' do
|
||||
before do
|
||||
subject.recipients = recipients
|
||||
|
||||
perform_enqueued_jobs do
|
||||
run
|
||||
end
|
||||
|
@ -75,10 +82,6 @@ describe PipelinesEmailService, :mailer do
|
|||
subject.test(data)
|
||||
end
|
||||
|
||||
before do
|
||||
subject.recipients = recipient
|
||||
end
|
||||
|
||||
context 'when pipeline is failed' do
|
||||
before do
|
||||
data[:object_attributes][:status] = 'failed'
|
||||
|
@ -104,10 +107,6 @@ describe PipelinesEmailService, :mailer do
|
|||
end
|
||||
|
||||
context 'with recipients' do
|
||||
before do
|
||||
subject.recipients = recipient
|
||||
end
|
||||
|
||||
context 'with failed pipeline' do
|
||||
before do
|
||||
data[:object_attributes][:status] = 'failed'
|
||||
|
@ -152,9 +151,7 @@ describe PipelinesEmailService, :mailer do
|
|||
end
|
||||
|
||||
context 'with empty recipients list' do
|
||||
before do
|
||||
subject.recipients = ' ,, '
|
||||
end
|
||||
let(:recipients) { ' ,, ' }
|
||||
|
||||
context 'with failed pipeline' do
|
||||
before do
|
||||
|
@ -165,5 +162,19 @@ describe PipelinesEmailService, :mailer do
|
|||
it_behaves_like 'not sending email'
|
||||
end
|
||||
end
|
||||
|
||||
context 'with recipients list separating with newlines' do
|
||||
let(:recipients) { "\ntest@gitlab.com, \r\nexample@gitlab.com" }
|
||||
let(:receivers) { %w[test@gitlab.com example@gitlab.com] }
|
||||
|
||||
context 'with failed pipeline' do
|
||||
before do
|
||||
data[:object_attributes][:status] = 'failed'
|
||||
pipeline.update(status: 'failed')
|
||||
end
|
||||
|
||||
it_behaves_like 'sending email'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue