summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-01-08 17:31:35 +0000
committerStan Hu <stanhu@gmail.com>2016-01-08 17:31:35 +0000
commit7403df6ca7bd31cd002d6fcf3bf4aa02dd4478eb (patch)
tree199fcaf1278a6e1b87f57cbd7cd43e172b382561 /spec/models
parent8429f6f409eb8911d21095bc0fff3db2e53efd22 (diff)
parent69209612e1793fcebcdb784074056d7a02b0f6f7 (diff)
downloadgitlab-ce-7403df6ca7bd31cd002d6fcf3bf4aa02dd4478eb.tar.gz
Merge branch 'suppress-allow-failure-builds' into 'master'
Suppress e-mails on failed builds if allow_failure is set Every time I push to GitLab, I get > 2 emails saying a spec failed when I don't care about the benchmarks and others that have `allow_failure` set to `true`. @ayufan mentioned creating a summary e-mail to prevent getting one e-mail per build, but the latter might actually be desirable. For example, I do want to know if Rubocop errors fail right away. See merge request !2178
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/project_services/builds_email_service_spec.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/models/project_services/builds_email_service_spec.rb b/spec/models/project_services/builds_email_service_spec.rb
new file mode 100644
index 00000000000..905379a64e3
--- /dev/null
+++ b/spec/models/project_services/builds_email_service_spec.rb
@@ -0,0 +1,23 @@
+require 'spec_helper'
+
+describe BuildsEmailService do
+ let(:build) { create(:ci_build) }
+ let(:data) { Gitlab::BuildDataBuilder.build(build) }
+ let(:service) { BuildsEmailService.new }
+
+ describe :execute do
+ it "sends email" do
+ service.recipients = 'test@gitlab.com'
+ data[:build_status] = 'failed'
+ expect(BuildEmailWorker).to receive(:perform_async)
+ service.execute(data)
+ end
+
+ it "does not sends email with failed build and allowed_failure on" do
+ data[:build_status] = 'failed'
+ data[:build_allow_failure] = true
+ expect(BuildEmailWorker).not_to receive(:perform_async)
+ service.execute(data)
+ end
+ end
+end