summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/models/ci/mail_service_spec.rb51
1 files changed, 33 insertions, 18 deletions
diff --git a/spec/models/ci/mail_service_spec.rb b/spec/models/ci/mail_service_spec.rb
index 316c374fd5f..564c2941bb5 100644
--- a/spec/models/ci/mail_service_spec.rb
+++ b/spec/models/ci/mail_service_spec.rb
@@ -29,11 +29,6 @@ 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) }
@@ -47,10 +42,13 @@ describe Ci::MailService do
end
it do
+ should_email("git@example.com")
mail.execute(build)
- 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
+
+ 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)
end
end
@@ -66,10 +64,13 @@ describe Ci::MailService do
end
it do
+ should_email("git@example.com")
mail.execute(build)
- 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
+
+ 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)
end
end
@@ -90,12 +91,14 @@ describe Ci::MailService do
end
it do
+ should_email("git@example.com")
+ should_email("jeroen@example.com")
mail.execute(build)
- 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
+
+ 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)
end
end
@@ -116,8 +119,14 @@ 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)
- expect(deliveries.count).to eq(0)
+ 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)
end
end
@@ -161,8 +170,14 @@ 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)
- expect(deliveries.count).to eq(0)
+ 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)
end
end
end