diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-03-18 23:02:30 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-03-18 23:02:30 +0300 |
commit | 41fe97390ceddf945f3d967b8fdb3de4c66b7dea (patch) | |
tree | 9c8d89a8624828992f06d892cd2f43818ff5dcc8 /spec/controllers/admin | |
parent | 0804d2dc31052fb45a1efecedc8e06ce9bc32862 (diff) |
Add latest changes from gitlab-org/gitlab@14-9-stable-eev14.9.0-rc42
Diffstat (limited to 'spec/controllers/admin')
5 files changed, 112 insertions, 5 deletions
diff --git a/spec/controllers/admin/application_settings_controller_spec.rb b/spec/controllers/admin/application_settings_controller_spec.rb index fb4c0970653..f7b2bab3615 100644 --- a/spec/controllers/admin/application_settings_controller_spec.rb +++ b/spec/controllers/admin/application_settings_controller_spec.rb @@ -81,6 +81,18 @@ RSpec.describe Admin::ApplicationSettingsController, :do_not_mock_admin_mode_set expect(body).to include('counts') expect(response).to have_gitlab_http_status(:ok) end + + describe 'usage data counter' do + let(:counter) { Gitlab::UsageDataCounters::ServiceUsageDataCounter } + + it 'incremented when json generated' do + expect { get :usage_data, format: :json }.to change { counter.read(:download_payload_click) }.by(1) + end + + it 'not incremented when html format requested' do + expect { get :usage_data }.not_to change { counter.read(:download_payload_click) } + end + end end describe 'PUT #update' do diff --git a/spec/controllers/admin/clusters_controller_spec.rb b/spec/controllers/admin/clusters_controller_spec.rb index 25c4830a79a..fed9d2e8588 100644 --- a/spec/controllers/admin/clusters_controller_spec.rb +++ b/spec/controllers/admin/clusters_controller_spec.rb @@ -27,6 +27,10 @@ RSpec.describe Admin::ClustersController do create(:cluster, :disabled, :provided_by_gcp, :production_environment, :instance) end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { get_index } + end + it 'lists available clusters and displays html' do get_index @@ -105,6 +109,10 @@ RSpec.describe Admin::ClustersController do get :new, params: { provider: provider } end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { go } + end + describe 'functionality for new cluster' do context 'when omniauth has been configured' do let(:key) { 'secret-key' } @@ -226,6 +234,10 @@ RSpec.describe Admin::ClustersController do post :create_gcp, params: params end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { post_create_gcp } + end + describe 'functionality' do context 'when access token is valid' do before do @@ -318,6 +330,10 @@ RSpec.describe Admin::ClustersController do post :create_aws, params: params end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { post_create_aws } + end + it 'creates a new cluster' do expect(ClusterProvisionWorker).to receive(:perform_async) expect { post_create_aws }.to change { Clusters::Cluster.count } @@ -375,6 +391,10 @@ RSpec.describe Admin::ClustersController do post :create_user, params: params end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { post_create_user } + end + describe 'functionality' do context 'when creates a cluster' do it 'creates a new cluster' do @@ -445,6 +465,10 @@ RSpec.describe Admin::ClustersController do post :authorize_aws_role, params: params end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { go } + end + before do allow(Clusters::Aws::FetchCredentialsService).to receive(:new) .and_return(double(execute: double)) @@ -495,6 +519,10 @@ RSpec.describe Admin::ClustersController do delete :clear_cache, params: { id: cluster } end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { go } + end + it 'deletes the namespaces associated with the cluster' do expect { go }.to change { Clusters::KubernetesNamespace.count } @@ -520,6 +548,10 @@ RSpec.describe Admin::ClustersController do format: :json end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { get_cluster_status } + end + describe 'functionality' do it 'responds with matching schema' do get_cluster_status @@ -555,6 +587,10 @@ RSpec.describe Admin::ClustersController do } end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { get_show } + end + describe 'functionality' do render_views @@ -603,6 +639,10 @@ RSpec.describe Admin::ClustersController do } end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { put_update } + end + it 'updates and redirects back to show page' do put_update @@ -694,6 +734,10 @@ RSpec.describe Admin::ClustersController do } end + include_examples ':certificate_based_clusters feature flag controller responses' do + let(:subject) { delete_destroy } + end + describe 'functionality' do context 'when cluster is provided by GCP' do context 'when cluster is created' do diff --git a/spec/controllers/admin/runner_projects_controller_spec.rb b/spec/controllers/admin/runner_projects_controller_spec.rb index e5f63025cf7..98f961f66bb 100644 --- a/spec/controllers/admin/runner_projects_controller_spec.rb +++ b/spec/controllers/admin/runner_projects_controller_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Admin::RunnerProjectsController do describe '#create' do let(:project_id) { project.path } - subject do + subject(:send_create) do post :create, params: { namespace_id: group.path, project_id: project_id, @@ -25,7 +25,7 @@ RSpec.describe Admin::RunnerProjectsController do let(:project_runner) { create(:ci_runner, :project, projects: [project]) } it 'redirects to the admin runner edit page' do - subject + send_create expect(response).to have_gitlab_http_status(:redirect) expect(response).to redirect_to edit_admin_runner_url(project_runner) @@ -37,7 +37,7 @@ RSpec.describe Admin::RunnerProjectsController do let(:source_project) { create(:project) } it 'redirects to the admin runner edit page' do - subject + send_create expect(response).to have_gitlab_http_status(:redirect) expect(response).to redirect_to edit_admin_runner_url(project_runner) @@ -50,7 +50,42 @@ RSpec.describe Admin::RunnerProjectsController do let(:project_id) { 0 } it 'shows 404 for unknown project' do - subject + send_create + + expect(response).to have_gitlab_http_status(:not_found) + end + end + end + + describe '#destroy' do + let_it_be(:project_runner) { create(:ci_runner, :project, projects: [project]) } + + let(:project_id) { project.path } + + subject(:send_destroy) do + delete :destroy, params: { + namespace_id: group.path, + project_id: project_id, + id: runner_project_id + } + end + + context 'unassigning runner from project' do + let(:runner_project_id) { project_runner.runner_projects.last.id } + + it 'redirects to the admin runner edit page' do + send_destroy + + expect(response).to have_gitlab_http_status(:redirect) + expect(response).to redirect_to edit_admin_runner_url(project_runner) + end + end + + context 'for unknown project runner relationship' do + let(:runner_project_id) { 0 } + + it 'shows 404 for unknown project runner relationship' do + send_destroy expect(response).to have_gitlab_http_status(:not_found) end diff --git a/spec/controllers/admin/runners_controller_spec.rb b/spec/controllers/admin/runners_controller_spec.rb index 74f352e8ec2..8f70cb32d3e 100644 --- a/spec/controllers/admin/runners_controller_spec.rb +++ b/spec/controllers/admin/runners_controller_spec.rb @@ -105,7 +105,7 @@ RSpec.describe Admin::RunnersController do describe '#destroy' do it 'destroys the runner' do - expect_next_instance_of(Ci::UnregisterRunnerService, runner) do |service| + expect_next_instance_of(Ci::Runners::UnregisterRunnerService, runner, user) do |service| expect(service).to receive(:execute).once.and_call_original end diff --git a/spec/controllers/admin/topics_controller_spec.rb b/spec/controllers/admin/topics_controller_spec.rb index 6d66cb43338..ea510f916da 100644 --- a/spec/controllers/admin/topics_controller_spec.rb +++ b/spec/controllers/admin/topics_controller_spec.rb @@ -88,6 +88,13 @@ RSpec.describe Admin::TopicsController do expect(errors).to contain_exactly(errors.full_message(:name, I18n.t('errors.messages.blank'))) end + it 'shows error message if topic not unique (case insensitive)' do + post :create, params: { projects_topic: { name: topic.name.upcase } } + + errors = assigns[:topic].errors + expect(errors).to contain_exactly(errors.full_message(:name, I18n.t('errors.messages.taken'))) + end + context 'as a normal user' do before do sign_in(user) @@ -116,6 +123,15 @@ RSpec.describe Admin::TopicsController do expect(errors).to contain_exactly(errors.full_message(:name, I18n.t('errors.messages.blank'))) end + it 'shows error message if topic not unique (case insensitive)' do + other_topic = create(:topic, name: 'other-topic') + + put :update, params: { id: topic.id, projects_topic: { name: other_topic.name.upcase } } + + errors = assigns[:topic].errors + expect(errors).to contain_exactly(errors.full_message(:name, I18n.t('errors.messages.taken'))) + end + context 'as a normal user' do before do sign_in(user) |