diff options
author | Alexis Reigel <alexis.reigel.ext@siemens.com> | 2017-12-19 18:04:33 +0100 |
---|---|---|
committer | Alexis Reigel <alexis.reigel.ext@siemens.com> | 2018-02-28 09:51:23 +0100 |
commit | f003cec95ea74c88125350438169a9325db8ade9 (patch) | |
tree | 8242b5b0d97bc9b281c898c396b2ac5e3fc0d709 | |
parent | 45f205a2dc20bd9444e6deede920e36aa5830bc2 (diff) | |
download | gitlab-ce-f003cec95ea74c88125350438169a9325db8ade9.tar.gz |
show group runners setup only to group master
-rw-r--r-- | app/views/projects/runners/_group_runners.html.haml | 7 | ||||
-rw-r--r-- | spec/features/runners_spec.rb | 82 |
2 files changed, 59 insertions, 30 deletions
diff --git a/app/views/projects/runners/_group_runners.html.haml b/app/views/projects/runners/_group_runners.html.haml index 798c457227f..c35db60f625 100644 --- a/app/views/projects/runners/_group_runners.html.haml +++ b/app/views/projects/runners/_group_runners.html.haml @@ -20,8 +20,11 @@ - elsif @group_runners.empty? This group does not provide any group Runners yet. - = render partial: 'ci/runner/how_to_setup_runner', - locals: { registration_token: @project.group.runners_token, type: 'group' } + - if can?(current_user, :admin_pipeline, @project.group) + = render partial: 'ci/runner/how_to_setup_runner', + locals: { registration_token: @project.group.runners_token, type: 'group' } + - else + Ask your group master to setup a group Runner. - else %h4.underlined-title Available group Runners : #{@group_runners.count} diff --git a/spec/features/runners_spec.rb b/spec/features/runners_spec.rb index dcd06a4015d..8c8c545d24c 100644 --- a/spec/features/runners_spec.rb +++ b/spec/features/runners_spec.rb @@ -187,51 +187,77 @@ feature 'Runners' do project.add_master(user) end - context 'project without a group' do - given(:project) { create :project } + given(:group) { create :group } - scenario 'group runners are not available' do - visit runners_path(project) + context 'as project and group master' do + background do + group.add_master(user) + end + + context 'project with a group but no group runner' do + given(:project) { create :project, group: group } + + scenario 'group runners are not available' do + visit runners_path(project) - expect(page).to have_content 'This project does not belong to a group and can therefore not make use of group Runners.' + expect(page).to have_content 'This group does not provide any group Runners yet.' + + expect(page).to have_content 'How to setup a group Runner for a new project' + expect(page).not_to have_content 'Ask your group master to setup a group Runner.' + end end end - context 'project with a group but no group runner' do - given(:group) { create :group } - given(:project) { create :project, group: group } + context 'as project master' do + context 'project without a group' do + given(:project) { create :project } - scenario 'group runners are not available' do - visit runners_path(project) + scenario 'group runners are not available' do + visit runners_path(project) - expect(page).to have_content 'This group does not provide any group Runners yet.' + expect(page).to have_content 'This project does not belong to a group and can therefore not make use of group Runners.' + end end - end - context 'project with a group and a group runner' do - given(:group) { create :group } - given(:project) { create :project, group: group } - given!(:ci_runner) { create :ci_runner, groups: [group], description: 'group-runner' } + context 'project with a group but no group runner' do + given(:group) { create :group } + given(:project) { create :project, group: group } - scenario 'group runners are available' do - visit runners_path(project) + scenario 'group runners are not available' do + visit runners_path(project) + + expect(page).to have_content 'This group does not provide any group Runners yet.' - expect(page).to have_content 'Available group Runners : 1' - expect(page).to have_content 'group-runner' + expect(page).not_to have_content 'How to setup a group Runner for a new project' + expect(page).to have_content 'Ask your group master to setup a group Runner.' + end end - scenario 'group runners may be disabled for a project' do - visit runners_path(project) + context 'project with a group and a group runner' do + given(:group) { create :group } + given(:project) { create :project, group: group } + given!(:ci_runner) { create :ci_runner, groups: [group], description: 'group-runner' } + + scenario 'group runners are available' do + visit runners_path(project) + + expect(page).to have_content 'Available group Runners : 1' + expect(page).to have_content 'group-runner' + end - click_on 'Disable group Runners' + scenario 'group runners may be disabled for a project' do + visit runners_path(project) + + click_on 'Disable group Runners' - expect(page).to have_content 'Enable group Runners' - expect(project.reload.group_runners_enabled).to be false + expect(page).to have_content 'Enable group Runners' + expect(project.reload.group_runners_enabled).to be false - click_on 'Enable group Runners' + click_on 'Enable group Runners' - expect(page).to have_content 'Disable group Runners' - expect(project.reload.group_runners_enabled).to be true + expect(page).to have_content 'Disable group Runners' + expect(project.reload.group_runners_enabled).to be true + end end end end |