summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/models/ci/mail_service_spec.rb51
1 files changed, 18 insertions, 33 deletions
diff --git a/spec/models/ci/mail_service_spec.rb b/spec/models/ci/mail_service_spec.rb
index 564c2941bb5..316c374fd5f 100644
--- a/spec/models/ci/mail_service_spec.rb
+++ b/spec/models/ci/mail_service_spec.rb
@@ -29,6 +29,11 @@ describe Ci::MailService do
describe 'Sends email for' do
let(:mail) { Ci::MailService.new }
+ let(:deliveries) { ActionMailer::Base.deliveries}
+
+ before(:each) do
+ deliveries.clear
+ end
describe 'failed build' do
let(:project) { FactoryGirl.create(:ci_project, email_add_pusher: true) }
@@ -42,13 +47,10 @@ describe Ci::MailService do
end
it do
- should_email("git@example.com")
mail.execute(build)
- end
-
- def should_email(email)
- expect(Notify).to receive(:build_fail_email).with(build.id, email)
- expect(Notify).not_to receive(:build_success_email).with(build.id, email)
+ expect(deliveries.count).to eq(1)
+ expect(deliveries[0].subject).to include('Build failed for')
+ expect(deliveries[0].to).to eq(["git@example.com"])
end
end
@@ -64,13 +66,10 @@ describe Ci::MailService do
end
it do
- should_email("git@example.com")
mail.execute(build)
- end
-
- def should_email(email)
- expect(Notify).to receive(:build_success_email).with(build.id, email)
- expect(Notify).not_to receive(:build_fail_email).with(build.id, email)
+ expect(deliveries.count).to eq(1)
+ expect(deliveries[0].subject).to include('Build success for')
+ expect(deliveries[0].to).to eq(["git@example.com"])
end
end
@@ -91,14 +90,12 @@ describe Ci::MailService do
end
it do
- should_email("git@example.com")
- should_email("jeroen@example.com")
mail.execute(build)
- end
-
- def should_email(email)
- expect(Notify).to receive(:build_success_email).with(build.id, email)
- expect(Notify).not_to receive(:build_fail_email).with(build.id, email)
+ expect(deliveries.count).to eq(2)
+ expect(deliveries[0].subject).to include('Build success for')
+ expect(deliveries[0].to).to eq(["jeroen@example.com"])
+ expect(deliveries[1].subject).to include('Build success for')
+ expect(deliveries[1].to).to eq(["git@example.com"])
end
end
@@ -119,14 +116,8 @@ describe Ci::MailService do
end
it do
- should_email(commit.git_author_email)
- should_email("jeroen@example.com")
mail.execute(build) if mail.can_execute?(build)
- end
-
- def should_email(email)
- expect(Notify).not_to receive(:build_success_email).with(build.id, email)
- expect(Notify).not_to receive(:build_fail_email).with(build.id, email)
+ expect(deliveries.count).to eq(0)
end
end
@@ -170,14 +161,8 @@ describe Ci::MailService do
it do
Ci::Build.retry(build)
- should_email(commit.git_author_email)
- should_email("jeroen@example.com")
mail.execute(build) if mail.can_execute?(build)
- end
-
- def should_email(email)
- expect(Notify).not_to receive(:build_success_email).with(build.id, email)
- expect(Notify).not_to receive(:build_fail_email).with(build.id, email)
+ expect(deliveries.count).to eq(0)
end
end
end