diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-09-17 08:51:18 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-09-17 08:51:18 +0000 |
commit | e1b0ac5b8fc523ddbfbda1f8a30888b61b82374e (patch) | |
tree | a83b554978a4af8fc015b21ff97683d91e237ffc /spec/models | |
parent | 5a8908bf587a0723b07e510dd6118a686d49af98 (diff) | |
parent | 3bc5f7113350096263d615de07afe143f602659d (diff) | |
download | gitlab-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.rb | 42 |
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 |