diff --git a/spec/features/runners_spec.rb b/spec/features/runners_spec.rb index 4f87dbe392d..785cfeb34bd 100644 --- a/spec/features/runners_spec.rb +++ b/spec/features/runners_spec.rb @@ -10,11 +10,14 @@ feature 'Runners' do context 'when a project has enabled shared_runners' do given(:project) { create(:project) } + background do + project.add_master(user) + end + context 'when a specific runner is activated on the project' do given(:specific_runner) { create(:ci_runner, :specific) } background do - project.add_master(user) project.runners << specific_runner end @@ -30,19 +33,19 @@ feature 'Runners' do expect(page).to have_content(specific_runner.platform) end - scenario 'user removes an activated specific runner' do + scenario 'user removes an activated specific runner if this is last project for that runners' do visit runners_path(project) within '.activated-specific-runners' do click_on 'Remove Runner' end - expect(page).to have_no_css('.activated-specific-runners') + expect(page).not_to have_content(specific_runner.display_name) end context 'when a runner has a tag' do background do - specific_runner.update_attribute(:tag_list, ['tag']) + specific_runner.update(tag_list: ['tag']) end scenario 'user edits runner not to run untagged jobs' do @@ -61,32 +64,6 @@ feature 'Runners' do end end - context 'when a specific runner exists in another project' do - given(:another_project) { create(:project) } - given(:specific_runner2) { create(:ci_runner, :specific) } - - background do - another_project.add_master(user) - another_project.runners << specific_runner2 - end - - scenario 'user enables and disables a specific runner' do - visit runners_path(project) - - within '.available-specific-runners' do - click_on 'Enable for this project' - end - - expect(page.find('.activated-specific-runners')).to have_content(specific_runner2.display_name) - - within '.activated-specific-runners' do - click_on 'Disable for this project' - end - - expect(page.find('.activated-specific-runners')).not_to have_content(specific_runner2.display_name) - end - end - context 'when a shared runner is activated on the project' do given!(:shared_runner) { create(:ci_runner, :shared) } @@ -98,12 +75,37 @@ feature 'Runners' do end end + context 'when a specific runner exists in another project' do + given(:another_project) { create(:project) } + given(:specific_runner) { create(:ci_runner, :specific) } + + background do + another_project.add_master(user) + another_project.runners << specific_runner + end + + scenario 'user enables and disables a specific runner' do + visit runners_path(project) + + within '.available-specific-runners' do + click_on 'Enable for this project' + end + + expect(page.find('.activated-specific-runners')).to have_content(specific_runner.display_name) + + within '.activated-specific-runners' do + click_on 'Disable for this project' + end + + expect(page.find('.available-specific-runners')).to have_content(specific_runner.display_name) + end + end + context 'when application settings have shared_runners_text' do given(:shared_runners_text) { 'custom **shared** runners description' } given(:shared_runners_html) { 'custom shared runners description' } background do - project.add_master(user) stub_application_setting(shared_runners_text: shared_runners_text) end @@ -126,6 +128,7 @@ feature 'Runners' do visit runners_path(project) click_on 'Enable shared Runners' + expect(page.find('.shared-runners-description')).to have_content('Disable shared Runners') end end