Merge branch '20150-retry-button-on-build-page-displays-for-users-who-can-t-use-it' into 'master'
Ensure current user can retry a build before showing the 'Retry' button ## What does this MR do? Fixes #20150. ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - Tests - [x] Added for this feature/bug - [ ] All builds are passing - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if you do - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5476
This commit is contained in:
commit
2e6a3b697c
3 changed files with 28 additions and 5 deletions
|
@ -21,6 +21,7 @@ v 8.10.2 (unreleased)
|
|||
- Disable MySQL foreign key checks before dropping all tables. !5472
|
||||
- Use project ID in repository cache to prevent stale data from persisting across projects. !5460
|
||||
- Ensure relative paths for video are rewritten as we do for images. !5474
|
||||
- Ensure current user can retry a build before showing the 'Retry' button. !5476
|
||||
|
||||
v 8.10.1
|
||||
- Refactor repository storages documentation. !5428
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
.block{ class: ("block-first" if !@build.coverage && !(can?(current_user, :read_build, @project) && (@build.artifacts? || @build.artifacts_expired?))) }
|
||||
.title
|
||||
Build details
|
||||
- if @build.retryable?
|
||||
- if can?(current_user, :update_build, @build) && @build.retryable?
|
||||
= link_to "Retry", retry_namespace_project_build_path(@project.namespace, @project, @build), class: 'pull-right', method: :post
|
||||
- if @build.merge_request
|
||||
%p.build-detail-row
|
||||
|
|
|
@ -199,9 +199,13 @@ describe "Builds" do
|
|||
click_link 'Retry'
|
||||
end
|
||||
|
||||
it { expect(page.status_code).to eq(200) }
|
||||
it { expect(page).to have_content 'pending' }
|
||||
it { expect(page).to have_content 'Cancel' }
|
||||
it 'shows the right status and buttons' do
|
||||
expect(page).to have_http_status(200)
|
||||
expect(page).to have_content 'pending'
|
||||
page.within('aside.right-sidebar') do
|
||||
expect(page).to have_content 'Cancel'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "Build from other project" do
|
||||
|
@ -212,7 +216,25 @@ describe "Builds" do
|
|||
page.driver.post(retry_namespace_project_build_path(@project.namespace, @project, @build2))
|
||||
end
|
||||
|
||||
it { expect(page.status_code).to eq(404) }
|
||||
it { expect(page).to have_http_status(404) }
|
||||
end
|
||||
|
||||
context "Build that current user is not allowed to retry" do
|
||||
before do
|
||||
@build.run!
|
||||
@build.cancel!
|
||||
@project.update(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
|
||||
|
||||
logout_direct
|
||||
login_with(create(:user))
|
||||
visit namespace_project_build_path(@project.namespace, @project, @build)
|
||||
end
|
||||
|
||||
it 'does not show the Retry button' do
|
||||
page.within('aside.right-sidebar') do
|
||||
expect(page).not_to have_content 'Retry'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue