diff options
author | Rémy Coutable <remy@rymai.me> | 2016-07-26 09:43:11 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-07-27 13:16:00 +0200 |
commit | 461505519645c8b65f73bd8f64e7bac7d7165d0b (patch) | |
tree | 85512456bb529848af190d7e30b8433e0d5dc09e /spec | |
parent | 99d1f33d4b06c0e4b70f4ec41c866abc1c945b92 (diff) | |
download | gitlab-ce-461505519645c8b65f73bd8f64e7bac7d7165d0b.tar.gz |
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
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/builds_spec.rb | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/spec/features/builds_spec.rb b/spec/features/builds_spec.rb index cab3dc1d167..0cfeb2e57d8 100644 --- a/spec/features/builds_spec.rb +++ b/spec/features/builds_spec.rb @@ -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 |