diff options
Diffstat (limited to 'spec/views/projects/runners/_project_runners.html.haml_spec.rb')
-rw-r--r-- | spec/views/projects/runners/_project_runners.html.haml_spec.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/views/projects/runners/_project_runners.html.haml_spec.rb b/spec/views/projects/runners/_project_runners.html.haml_spec.rb new file mode 100644 index 00000000000..8a7e693bdeb --- /dev/null +++ b/spec/views/projects/runners/_project_runners.html.haml_spec.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'projects/runners/_project_runners.html.haml', feature_category: :runner do + describe 'render' do + let_it_be(:user) { build(:user) } + let_it_be(:project) { build(:project) } + + before do + @project = project + @assignable_runners = [] + @project_runners = [] + allow(view).to receive(:current_user).and_return(user) + allow(view).to receive(:reset_registration_token_namespace_project_settings_ci_cd_path).and_return('banana_url') + end + + context 'when project runner registration is allowed' do + before do + stub_application_setting(valid_runner_registrars: ['project']) + allow(view).to receive(:can?).with(user, :register_project_runners, project).and_return(true) + end + + it 'enables the Remove project button for a project' do + render 'projects/runners/project_runners', project: project + + expect(rendered).to have_selector '#js-install-runner' + expect(rendered).not_to have_content 'Please contact an admin to register runners.' + end + end + + context 'when project runner registration is not allowed' do + before do + stub_application_setting(valid_runner_registrars: ['group']) + end + + it 'does not enable the Remove project button for a project' do + render 'projects/runners/project_runners', project: project + + expect(rendered).to have_content 'Please contact an admin to register runners.' + expect(rendered).not_to have_selector '#js-install-runner' + end + end + end +end |