Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-01-20 12:16:11 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-01-20 12:16:11 +0300
commitedaa33dee2ff2f7ea3fac488d41558eb5f86d68c (patch)
tree11f143effbfeba52329fb7afbd05e6e2a3790241 /spec/controllers/admin
parentd8a5691316400a0f7ec4f83832698f1988eb27c1 (diff)
Add latest changes from gitlab-org/gitlab@14-7-stable-eev14.7.0-rc42
Diffstat (limited to 'spec/controllers/admin')
-rw-r--r--spec/controllers/admin/application_settings_controller_spec.rb1
-rw-r--r--spec/controllers/admin/instance_review_controller_spec.rb1
-rw-r--r--spec/controllers/admin/runner_projects_controller_spec.rb59
-rw-r--r--spec/controllers/admin/runners_controller_spec.rb38
-rw-r--r--spec/controllers/admin/users_controller_spec.rb35
5 files changed, 121 insertions, 13 deletions
diff --git a/spec/controllers/admin/application_settings_controller_spec.rb b/spec/controllers/admin/application_settings_controller_spec.rb
index 478bd1b7f0a..fb4c0970653 100644
--- a/spec/controllers/admin/application_settings_controller_spec.rb
+++ b/spec/controllers/admin/application_settings_controller_spec.rb
@@ -62,6 +62,7 @@ RSpec.describe Admin::ApplicationSettingsController, :do_not_mock_admin_mode_set
describe 'GET #usage_data' do
before do
stub_usage_data_connections
+ stub_database_flavor_check
sign_in(admin)
end
diff --git a/spec/controllers/admin/instance_review_controller_spec.rb b/spec/controllers/admin/instance_review_controller_spec.rb
index 898cd30cdca..2169be4e70c 100644
--- a/spec/controllers/admin/instance_review_controller_spec.rb
+++ b/spec/controllers/admin/instance_review_controller_spec.rb
@@ -22,6 +22,7 @@ RSpec.describe Admin::InstanceReviewController do
before do
stub_application_setting(usage_ping_enabled: true)
stub_usage_data_connections
+ stub_database_flavor_check
::Gitlab::UsageData.data(force_refresh: true)
subject
end
diff --git a/spec/controllers/admin/runner_projects_controller_spec.rb b/spec/controllers/admin/runner_projects_controller_spec.rb
new file mode 100644
index 00000000000..e5f63025cf7
--- /dev/null
+++ b/spec/controllers/admin/runner_projects_controller_spec.rb
@@ -0,0 +1,59 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Admin::RunnerProjectsController do
+ let_it_be(:group) { create(:group) }
+ let_it_be(:project) { create(:project, group: group) }
+
+ before do
+ sign_in(create(:admin))
+ end
+
+ describe '#create' do
+ let(:project_id) { project.path }
+
+ subject do
+ post :create, params: {
+ namespace_id: group.path,
+ project_id: project_id,
+ runner_project: { runner_id: project_runner.id }
+ }
+ end
+
+ context 'assigning runner to same project' do
+ let(:project_runner) { create(:ci_runner, :project, projects: [project]) }
+
+ it 'redirects to the admin runner edit page' do
+ subject
+
+ expect(response).to have_gitlab_http_status(:redirect)
+ expect(response).to redirect_to edit_admin_runner_url(project_runner)
+ end
+ end
+
+ context 'assigning runner to another project' do
+ let(:project_runner) { create(:ci_runner, :project, projects: [source_project]) }
+ let(:source_project) { create(:project) }
+
+ it 'redirects to the admin runner edit page' do
+ subject
+
+ 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' do
+ let_it_be(:project_runner) { create(:ci_runner, :project, projects: [project]) }
+
+ let(:project_id) { 0 }
+
+ it 'shows 404 for unknown project' do
+ subject
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/admin/runners_controller_spec.rb b/spec/controllers/admin/runners_controller_spec.rb
index b9a59e9ae5f..08fb12c375e 100644
--- a/spec/controllers/admin/runners_controller_spec.rb
+++ b/spec/controllers/admin/runners_controller_spec.rb
@@ -26,6 +26,32 @@ RSpec.describe Admin::RunnersController do
render_views
let_it_be(:project) { create(:project) }
+
+ before_all do
+ create(:ci_build, runner: runner, project: project)
+ end
+
+ it 'shows a runner show page' do
+ get :show, params: { id: runner.id }
+
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template(:show)
+ end
+
+ it 'when runner_read_only_admin_view is off, redirects to the runner edit page' do
+ stub_feature_flags(runner_read_only_admin_view: false)
+
+ get :show, params: { id: runner.id }
+
+ expect(response).to have_gitlab_http_status(:redirect)
+ expect(response).to redirect_to edit_admin_runner_path(runner)
+ end
+ end
+
+ describe '#edit' do
+ render_views
+
+ let_it_be(:project) { create(:project) }
let_it_be(:project_two) { create(:project) }
before_all do
@@ -33,29 +59,29 @@ RSpec.describe Admin::RunnersController do
create(:ci_build, runner: runner, project: project_two)
end
- it 'shows a particular runner' do
- get :show, params: { id: runner.id }
+ it 'shows a runner edit page' do
+ get :edit, params: { id: runner.id }
expect(response).to have_gitlab_http_status(:ok)
end
it 'shows 404 for unknown runner' do
- get :show, params: { id: 0 }
+ get :edit, params: { id: 0 }
expect(response).to have_gitlab_http_status(:not_found)
end
it 'avoids N+1 queries', :request_store do
- get :show, params: { id: runner.id }
+ get :edit, params: { id: runner.id }
- control_count = ActiveRecord::QueryRecorder.new { get :show, params: { id: runner.id } }.count
+ control_count = ActiveRecord::QueryRecorder.new { get :edit, params: { id: runner.id } }.count
new_project = create(:project)
create(:ci_build, runner: runner, project: new_project)
# There is one additional query looking up subject.group in ProjectPolicy for the
# needs_new_sso_session permission
- expect { get :show, params: { id: runner.id } }.not_to exceed_query_limit(control_count + 1)
+ expect { get :edit, params: { id: runner.id } }.not_to exceed_query_limit(control_count + 1)
expect(response).to have_gitlab_http_status(:ok)
end
diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb
index 3a2b5dcb99d..c52223d4758 100644
--- a/spec/controllers/admin/users_controller_spec.rb
+++ b/spec/controllers/admin/users_controller_spec.rb
@@ -421,16 +421,37 @@ RSpec.describe Admin::UsersController do
end
describe 'PUT confirm/:id' do
- let(:user) { create(:user, confirmed_at: nil) }
+ shared_examples_for 'confirms the user' do
+ it 'confirms the user' do
+ put :confirm, params: { id: user.username }
+ user.reload
+ expect(user.confirmed?).to be_truthy
+ end
+ end
+
+ let(:expired_confirmation_sent_at) { Date.today - User.confirm_within - 7.days }
+ let(:extant_confirmation_sent_at) { Date.today }
+
+ let(:user) do
+ create(:user, :unconfirmed).tap do |user|
+ user.update!(confirmation_sent_at: confirmation_sent_at)
+ end
+ end
before do
request.env["HTTP_REFERER"] = "/"
end
- it 'confirms user' do
- put :confirm, params: { id: user.username }
- user.reload
- expect(user.confirmed?).to be_truthy
+ context 'when the confirmation period has expired' do
+ let(:confirmation_sent_at) { expired_confirmation_sent_at }
+
+ it_behaves_like 'confirms the user'
+ end
+
+ context 'when the confirmation period has not expired' do
+ let(:confirmation_sent_at) { extant_confirmation_sent_at }
+
+ it_behaves_like 'confirms the user'
end
end
@@ -591,8 +612,8 @@ RSpec.describe Admin::UsersController do
end
context 'when the new password does not match the password confirmation' do
- let(:password) { 'some_password' }
- let(:password_confirmation) { 'not_same_as_password' }
+ let(:password) { Gitlab::Password.test_default }
+ let(:password_confirmation) { "not" + Gitlab::Password.test_default }
it 'shows the edit page again' do
update_password(user, password, password_confirmation)