summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2018-12-12 13:31:53 +0000
committerNick Thomas <nick@gitlab.com>2018-12-12 13:31:53 +0000
commitb9ccf013bab3f7ec25b70d83f37b1b0923302379 (patch)
tree90674592fccdb3c2b8bec338f97583cfd17854f7 /spec/models
parent5ee900ee9d2288cbf57007d905acd2a6e9239ff4 (diff)
parentb65cb237cee0b1a8dfdc21a09f2b181d0edf5bde (diff)
downloadgitlab-ce-b9ccf013bab3f7ec25b70d83f37b1b0923302379.tar.gz
Merge branch '54650-send-an-email-to-project-owners-when-a-mirror-update-fails' into 'master'
Send a notification email on mirror update errors Closes #54650 See merge request gitlab-org/gitlab-ce!23595
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/remote_mirror_spec.rb39
1 files changed, 38 insertions, 1 deletions
diff --git a/spec/models/remote_mirror_spec.rb b/spec/models/remote_mirror_spec.rb
index b12ca79847c..5d3c25062d5 100644
--- a/spec/models/remote_mirror_spec.rb
+++ b/spec/models/remote_mirror_spec.rb
@@ -1,6 +1,6 @@
require 'rails_helper'
-describe RemoteMirror do
+describe RemoteMirror, :mailer do
include GitHelpers
describe 'URL validation' do
@@ -137,6 +137,43 @@ describe RemoteMirror do
end
end
+ describe '#mark_as_failed' do
+ let(:remote_mirror) { create(:remote_mirror) }
+ let(:error_message) { 'http://user:pass@test.com/root/repoC.git/' }
+ let(:sanitized_error_message) { 'http://*****:*****@test.com/root/repoC.git/' }
+
+ subject do
+ remote_mirror.update_start
+ remote_mirror.mark_as_failed(error_message)
+ end
+
+ it 'sets the update_status to failed' do
+ subject
+
+ expect(remote_mirror.reload.update_status).to eq('failed')
+ end
+
+ it 'saves the sanitized error' do
+ subject
+
+ expect(remote_mirror.last_error).to eq(sanitized_error_message)
+ end
+
+ context 'notifications' do
+ let(:user) { create(:user) }
+
+ before do
+ remote_mirror.project.add_maintainer(user)
+ end
+
+ it 'notifies the project maintainers' do
+ perform_enqueued_jobs { subject }
+
+ should_email(user)
+ end
+ end
+ end
+
context 'when remote mirror gets destroyed' do
it 'removes remote' do
mirror = create_mirror(url: 'http://foo:bar@test.com')