diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-22 00:08:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-06-22 00:08:33 +0300 |
commit | ee04416cd44b73dbb5588952cf3989c167104569 (patch) | |
tree | 24bb8d3d822cef6f67a0ae8b35ad5fd1950a78be /spec/views | |
parent | 6f03d13ddbc2ac2f18517ce2c8b838f89a774c7c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/views')
3 files changed, 142 insertions, 0 deletions
diff --git a/spec/views/admin/application_settings/ci_cd.html.haml_spec.rb b/spec/views/admin/application_settings/ci_cd.html.haml_spec.rb new file mode 100644 index 00000000000..4d40bf5671e --- /dev/null +++ b/spec/views/admin/application_settings/ci_cd.html.haml_spec.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'admin/application_settings/ci_cd.html.haml' do + let_it_be(:app_settings) { build(:application_setting) } + let_it_be(:user) { create(:admin) } + + let_it_be(:default_plan_limits) { create(:plan_limits, :default_plan, :with_package_file_sizes) } + + before do + assign(:application_setting, app_settings) + assign(:plans, [default_plan_limits.plan]) + allow(view).to receive(:current_user).and_return(user) + end + + describe 'CI CD Runner Registration' do + context 'when feature flag is enabled' do + before do + stub_feature_flags(runner_registration_control: true) + end + + it 'has the setting section' do + render + + expect(rendered).to have_css("#js-runner-settings") + end + + it 'renders the correct setting section content' do + render + + expect(rendered).to have_content("Runner registration") + expect(rendered).to have_content("If no options are selected, only administrators can register runners.") + end + end + + context 'when feature flag is disabled' do + before do + stub_feature_flags(runner_registration_control: false) + end + + it 'does not have the setting section' do + render + + expect(rendered).not_to have_css("#js-runner-settings") + end + + it 'does not render the correct setting section content' do + render + + expect(rendered).not_to have_content("Runner registration") + expect(rendered).not_to have_content("If no options are selected, only administrators can register runners.") + end + end + end +end diff --git a/spec/views/groups/runners/_group_runners.html.haml_spec.rb b/spec/views/groups/runners/_group_runners.html.haml_spec.rb new file mode 100644 index 00000000000..0d47409c658 --- /dev/null +++ b/spec/views/groups/runners/_group_runners.html.haml_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'groups/runners/group_runners.html.haml' do + describe 'render' do + let_it_be(:user) { create(:user) } + let_it_be(:group) { create(:group) } + + before do + @group = group + allow(view).to receive(:current_user).and_return(user) + allow(view).to receive(:reset_registration_token_group_settings_ci_cd_path).and_return('banana_url') + allow(view).to receive(:can?).with(user, :admin_pipeline, group).and_return(true) + end + + context 'when group runner registration is allowed' do + before do + stub_application_setting(valid_runner_registrars: ['group']) + end + + it 'enables the Remove group button for a group' do + render 'groups/runners/group_runners', group: group + + 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 group runner registration is not allowed' do + before do + stub_application_setting(valid_runner_registrars: ['project']) + end + + it 'does not enable the the Remove group button for a group' do + render 'groups/runners/group_runners', group: group + + 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 diff --git a/spec/views/projects/runners/_specific_runners.html.haml_spec.rb b/spec/views/projects/runners/_specific_runners.html.haml_spec.rb new file mode 100644 index 00000000000..ace3502dd1e --- /dev/null +++ b/spec/views/projects/runners/_specific_runners.html.haml_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'projects/runners/specific_runners.html.haml' do + describe 'render' do + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project) } + + before do + @project = project + @assignable_runners = [] + @project_runners = [] + 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']) + end + + it 'enables the Remove project button for a project' do + render 'projects/runners/specific_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 the Remove project button for a project' do + render 'projects/runners/specific_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 |