summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2016-06-30 18:23:34 +0000
committerRobert Speicher <robert@gitlab.com>2016-06-30 18:23:34 +0000
commitdc2d0051dc64318d732e34aeae87f0b4291c8a82 (patch)
tree3d26187cd91e2b70685e3f578927b8de10630568
parentfa3e82820398b71bcdc4904ee52b981fe270fa65 (diff)
parent8223e280711f7d42a34816d681dffd3b2c881990 (diff)
downloadgitlab-ce-dc2d0051dc64318d732e34aeae87f0b4291c8a82.tar.gz
Merge branch 'fix/build-retry-button-in-view' into 'master'
Do not show build retry link when build is active Closes #19244 See merge request !4967
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/ci/build.rb2
-rw-r--r--spec/models/build_spec.rb18
-rw-r--r--spec/views/projects/builds/show.html.haml_spec.rb37
4 files changed, 57 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 9636aa48f43..1d83894b424 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -30,6 +30,7 @@ v 8.10.0 (unreleased)
- Add basic system information like memory and disk usage to the admin panel
v 8.9.4 (unreleased)
+ - Do not show build retry link in build sidebar when build is not finished yet
- Fixes middle click and double request when navigating through the file browser !4891
- Add sub nav to file page view
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 2b0bec33131..c11f8e6884d 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -90,7 +90,7 @@ module Ci
end
def retryable?
- project.builds_enabled? && commands.present?
+ project.builds_enabled? && commands.present? && complete?
end
def retried?
diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb
index 8154001cf46..97b28686d82 100644
--- a/spec/models/build_spec.rb
+++ b/spec/models/build_spec.rb
@@ -669,4 +669,22 @@ describe Ci::Build, models: true do
expect(build.commit).to eq project.commit
end
end
+
+ describe '#retryable?' do
+ context 'when build is running' do
+ before { build.run! }
+
+ it 'should return false' do
+ expect(build.retryable?).to be false
+ end
+ end
+
+ context 'when build is finished' do
+ before { build.success! }
+
+ it 'should return true' do
+ expect(build.retryable?).to be true
+ end
+ end
+ end
end
diff --git a/spec/views/projects/builds/show.html.haml_spec.rb b/spec/views/projects/builds/show.html.haml_spec.rb
new file mode 100644
index 00000000000..cd18d19ef5e
--- /dev/null
+++ b/spec/views/projects/builds/show.html.haml_spec.rb
@@ -0,0 +1,37 @@
+require 'spec_helper'
+
+describe 'projects/builds/show' do
+ include Devise::TestHelpers
+
+ let(:build) { create(:ci_build) }
+ let(:project) { build.project }
+
+ before do
+ assign(:build, build)
+ assign(:project, project)
+
+ allow(view).to receive(:can?).and_return(true)
+ end
+
+ context 'when build is running' do
+ before do
+ build.run!
+ render
+ end
+
+ it 'does not show retry button' do
+ expect(rendered).not_to have_link('Retry')
+ end
+ end
+
+ context 'when build is not running' do
+ before do
+ build.success!
+ render
+ end
+
+ it 'shows retry button' do
+ expect(rendered).to have_link('Retry')
+ end
+ end
+end