summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-09-17 08:51:18 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-09-17 08:51:18 +0000
commite1b0ac5b8fc523ddbfbda1f8a30888b61b82374e (patch)
treea83b554978a4af8fc015b21ff97683d91e237ffc /spec/models
parent5a8908bf587a0723b07e510dd6118a686d49af98 (diff)
parent3bc5f7113350096263d615de07afe143f602659d (diff)
downloadgitlab-ce-e1b0ac5b8fc523ddbfbda1f8a30888b61b82374e.tar.gz
Merge branch '50460-send-deployment-information-in-job-api' into 'master'
Resolve "Send deployment information in job API" Closes #50460 See merge request gitlab-org/gitlab-ce!21307
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/ci/build_spec.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb
index 42b627b6823..dbebda20ce0 100644
--- a/spec/models/ci/build_spec.rb
+++ b/spec/models/ci/build_spec.rb
@@ -2981,4 +2981,46 @@ describe Ci::Build do
end
end
end
+
+ describe '#deployment_status' do
+ context 'when build is a last deployment' do
+ let(:build) { create(:ci_build, :success, environment: 'production') }
+ let(:environment) { create(:environment, name: 'production', project: build.project) }
+ let!(:deployment) { create(:deployment, environment: environment, project: environment.project, deployable: build) }
+
+ it { expect(build.deployment_status).to eq(:last) }
+ end
+
+ context 'when there is a newer build with deployment' do
+ let(:build) { create(:ci_build, :success, environment: 'production') }
+ let(:environment) { create(:environment, name: 'production', project: build.project) }
+ let!(:deployment) { create(:deployment, environment: environment, project: environment.project, deployable: build) }
+ let!(:last_deployment) { create(:deployment, environment: environment, project: environment.project) }
+
+ it { expect(build.deployment_status).to eq(:out_of_date) }
+ end
+
+ context 'when build with deployment has failed' do
+ let(:build) { create(:ci_build, :failed, environment: 'production') }
+ let(:environment) { create(:environment, name: 'production', project: build.project) }
+ let!(:deployment) { create(:deployment, environment: environment, project: environment.project, deployable: build) }
+
+ it { expect(build.deployment_status).to eq(:failed) }
+ end
+
+ context 'when build with deployment is running' do
+ let(:build) { create(:ci_build, environment: 'production') }
+ let(:environment) { create(:environment, name: 'production', project: build.project) }
+ let!(:deployment) { create(:deployment, environment: environment, project: environment.project, deployable: build) }
+
+ it { expect(build.deployment_status).to eq(:creating) }
+ end
+
+ context 'when build is successful but deployment is not ready yet' do
+ let(:build) { create(:ci_build, :success, environment: 'production') }
+ let(:environment) { create(:environment, name: 'production', project: build.project) }
+
+ it { expect(build.deployment_status).to eq(:creating) }
+ end
+ end
end