diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-11-17 12:08:28 +0100 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-11-17 12:08:28 +0100 |
commit | 43906336ff24e218cb1f7024d63a22367dd7e09a (patch) | |
tree | 326f69374123c68075942d45180b4c887376ba04 | |
parent | d6e00f5373e24deaa7f143f5445ae9461ef5f615 (diff) | |
download | gitlab-ce-43906336ff24e218cb1f7024d63a22367dd7e09a.tar.gz |
Fix tests and add has_environment?
-rw-r--r-- | app/models/ci/build.rb | 10 | ||||
-rw-r--r-- | app/views/projects/builds/show.html.haml | 2 | ||||
-rw-r--r-- | app/workers/build_success_worker.rb | 2 | ||||
-rw-r--r-- | spec/models/build_spec.rb | 38 | ||||
-rw-r--r-- | spec/models/ci/build_spec.rb | 4 |
5 files changed, 45 insertions, 11 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index e0e7a8caeea..7aa6d0a6bf2 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -131,12 +131,16 @@ module Ci ExpandVariables.expand(environment, variables) if environment end + def has_environment? + self.environment.present? + end + def starts_environment? - self.environment.present? && self.environment_action == 'start' + has_environment? && self.environment_action == 'start' end def stops_environment? - self.environment.present? && self.environment_action == 'stop' + has_environment? && self.environment_action == 'stop' end def environment_action @@ -148,7 +152,7 @@ module Ci end def last_deployment - deployments.order(id: :desc).last + deployments.last end def depends_on_builds diff --git a/app/views/projects/builds/show.html.haml b/app/views/projects/builds/show.html.haml index d799671058d..efb130a5dd8 100644 --- a/app/views/projects/builds/show.html.haml +++ b/app/views/projects/builds/show.html.haml @@ -26,7 +26,7 @@ = link_to namespace_project_runners_path(@build.project.namespace, @build.project) do Runners page - - if @build.environment.present? && @build.starts_environment? + - if @build.starts_environment? .prepend-top-default .environment-information - if @build.outdated_deployment? diff --git a/app/workers/build_success_worker.rb b/app/workers/build_success_worker.rb index 450ba871c4c..e17add7421f 100644 --- a/app/workers/build_success_worker.rb +++ b/app/workers/build_success_worker.rb @@ -4,7 +4,7 @@ class BuildSuccessWorker def perform(build_id) Ci::Build.find_by(id: build_id).try do |build| - create_deployment(build) if build.environment.present? + create_deployment(build) if build.has_environment? end end diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb index 731a2274d9e..ef07f2275b1 100644 --- a/spec/models/build_spec.rb +++ b/spec/models/build_spec.rb @@ -1053,6 +1053,26 @@ describe Ci::Build, models: true do end end + describe '#has_environment?' do + subject { build.has_environment? } + + context 'when environment is defined' do + before do + build.update(environment: 'review') + end + + it { is_expected.to be_truthy } + end + + context 'when environment is not defined' do + before do + build.update(environment: nil) + end + + it { is_expected.to be_falsey } + end + end + describe '#starts_environment?' do subject { build.starts_environment? } @@ -1061,7 +1081,17 @@ describe Ci::Build, models: true do build.update(environment: 'review') end - it { is_expected.to be_truthy } + context 'no action is defined' do + it { is_expected.to be_truthy } + end + + context 'and start action is defined' do + before do + build.update(options: { environment: { action: 'start' } } ) + end + + it { is_expected.to be_truthy } + end end context 'when environment is not defined' do @@ -1106,11 +1136,13 @@ describe Ci::Build, models: true do describe '#last_deployment' do subject { build.last_deployment } - context 'when multiple deployments is created returns latest one' do + context 'when multiple deployments are created' do let!(:deployment1) { create(:deployment, deployable: build) } let!(:deployment2) { create(:deployment, deployable: build) } - it { is_expected.to eq(deployment2) } + it 'returns the latest one' do + is_expected.to eq(deployment2) + end end end diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 2efe69d7adc..a7e90c8a381 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -4,14 +4,12 @@ describe Ci::Build, models: true do let(:build) { create(:ci_build) } let(:test_trace) { 'This is a test' } - describe 'ss' do it { is_expected.to belong_to(:runner) } it { is_expected.to belong_to(:trigger_request) } it { is_expected.to belong_to(:erased_by) } it { is_expected.to have_many(:deployments) } - end - + describe '#trace' do it 'obfuscates project runners token' do allow(build).to receive(:raw_trace).and_return("Test: #{build.project.runners_token}") |