show group runners setup only to group master

This commit is contained in:
Alexis Reigel 2017-12-19 18:04:33 +01:00
parent c585004b59
commit bfc694f511
No known key found for this signature in database
GPG Key ID: 55ADA7C7B683B329
2 changed files with 63 additions and 34 deletions

View File

@ -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}

View File

@ -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
expect(page).to have_content 'This project does not belong to a group and can therefore not make use of group Runners.'
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 group does not provide any group Runners yet.'
expect(page).to have_content 'Setup a group Runner manually'
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.'
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' }
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'
expect(page).to have_content 'This project does not belong to a group and can therefore not make use of group Runners.'
end
end
scenario 'group runners may be disabled for a project' do
visit runners_path(project)
context 'project with a group but no group runner' do
given(:group) { create :group }
given(:project) { create :project, group: group }
click_on 'Disable group Runners'
scenario 'group runners are not available' do
visit runners_path(project)
expect(page).to have_content 'Enable group Runners'
expect(project.reload.group_runners_enabled).to be false
expect(page).to have_content 'This group does not provide any group Runners yet.'
click_on 'Enable group Runners'
expect(page).not_to have_content 'Setup a group Runner manually'
expect(page).to have_content 'Ask your group master to setup a group Runner.'
end
end
expect(page).to have_content 'Disable group Runners'
expect(project.reload.group_runners_enabled).to be true
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
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
click_on 'Enable group Runners'
expect(page).to have_content 'Disable group Runners'
expect(project.reload.group_runners_enabled).to be true
end
end
end
end