summaryrefslogtreecommitdiff
path: root/spec/models/deployment_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/deployment_spec.rb')
-rw-r--r--spec/models/deployment_spec.rb38
1 files changed, 32 insertions, 6 deletions
diff --git a/spec/models/deployment_spec.rb b/spec/models/deployment_spec.rb
index 705b9b4cc65..409353bdbcf 100644
--- a/spec/models/deployment_spec.rb
+++ b/spec/models/deployment_spec.rb
@@ -858,12 +858,24 @@ RSpec.describe Deployment do
end
end
- it 'tracks an exception if an invalid status transition is detected' do
- expect(Gitlab::ErrorTracking)
+ context 'tracks an exception if an invalid status transition is detected' do
+ it do
+ expect(Gitlab::ErrorTracking)
+ .to receive(:track_exception)
+ .with(instance_of(described_class::StatusUpdateError), deployment_id: deploy.id)
+
+ expect(deploy.update_status('running')).to eq(false)
+ end
+
+ it do
+ deploy.update_status('success')
+
+ expect(Gitlab::ErrorTracking)
.to receive(:track_exception)
.with(instance_of(described_class::StatusUpdateError), deployment_id: deploy.id)
- expect(deploy.update_status('running')).to eq(false)
+ expect(deploy.update_status('created')).to eq(false)
+ end
end
it 'tracks an exception if an invalid argument' do
@@ -871,7 +883,7 @@ RSpec.describe Deployment do
.to receive(:track_exception)
.with(instance_of(described_class::StatusUpdateError), deployment_id: deploy.id)
- expect(deploy.update_status('created')).to eq(false)
+ expect(deploy.update_status('recreate')).to eq(false)
end
context 'mapping status to event' do
@@ -893,6 +905,16 @@ RSpec.describe Deployment do
deploy.update_status(status)
end
end
+
+ context 'for created status update' do
+ let(:deploy) { create(:deployment, status: :created) }
+
+ it 'calls the correct method' do
+ expect(deploy).to receive(:create!)
+
+ deploy.update_status('created')
+ end
+ end
end
end
@@ -974,7 +996,9 @@ RSpec.describe Deployment do
context 'with created build' do
let(:build_status) { :created }
- it_behaves_like 'ignoring build'
+ it_behaves_like 'gracefully handling error' do
+ let(:error_message) { %Q{Status cannot transition via \"create\"} }
+ end
end
context 'with running build' do
@@ -1002,7 +1026,9 @@ RSpec.describe Deployment do
context 'with created build' do
let(:build_status) { :created }
- it_behaves_like 'ignoring build'
+ it_behaves_like 'gracefully handling error' do
+ let(:error_message) { %Q{Status cannot transition via \"create\"} }
+ end
end
context 'with running build' do