From ce8db128a948a618eb297c27fdde4f8322c36e87 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Thu, 30 Jun 2016 18:23:34 +0000 Subject: [PATCH] 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 (cherry picked from commit dc2d0051dc64318d732e34aeae87f0b4291c8a82) --- CHANGELOG | 1 + app/models/ci/build.rb | 2 +- spec/models/build_spec.rb | 18 +++++++++ .../projects/builds/show.html.haml_spec.rb | 37 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 spec/views/projects/builds/show.html.haml_spec.rb diff --git a/CHANGELOG b/CHANGELOG index d6a940123b..e2a654f446 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ v 8.9.4 - Fixes middle click and double request when navigating through the file browser. !4891 - Fixed URL on label button when filtering. !4897 - Fixed commit avatar alignment. !4933 + - Do not show build retry link when build is active. !4967 v 8.9.3 - Fix encrypted data backwards compatibility after upgrading attr_encrypted gem. !4963 diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 2b0bec3313..c11f8e6884 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 8154001cf4..97b28686d8 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 0000000000..cd18d19ef5 --- /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