summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb28
-rw-r--r--spec/lib/gitlab/gitaly_client/operation_service_spec.rb4
-rw-r--r--spec/models/project_spec.rb16
3 files changed, 34 insertions, 14 deletions
diff --git a/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb b/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
index 0b8f64e97a1..923f620a81d 100644
--- a/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
+++ b/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
@@ -50,7 +50,7 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
end
end
- context 'with application settings and admin users' do
+ context 'with application settings and admin users', :request_store do
let(:project) { result[:project] }
let(:group) { result[:group] }
let(:application_setting) { Gitlab::CurrentSettings.current_application_settings }
@@ -58,8 +58,9 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
let!(:user) { create(:user, :admin) }
before do
- allow(ApplicationSetting).to receive(:current_without_cache) { application_setting }
- application_setting.allow_local_requests_from_web_hooks_and_services = true
+ stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
+
+ application_setting.update(allow_local_requests_from_web_hooks_and_services: true)
end
shared_examples 'has prometheus service' do |listen_address|
@@ -130,12 +131,17 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
it 'saves the project id' do
expect(result[:status]).to eq(:success)
- expect(application_setting.self_monitoring_project_id).to eq(project.id)
+ expect(application_setting.reload.self_monitoring_project_id).to eq(project.id)
end
- it 'expires application_setting cache' do
- expect(Gitlab::CurrentSettings).to receive(:expire_current_application_settings)
+ it 'creates a Prometheus service' do
expect(result[:status]).to eq(:success)
+
+ services = result[:project].reload.services
+
+ expect(services.count).to eq(1)
+ # Ensures PrometheusService#self_monitoring_project? is true
+ expect(services.first.allow_local_api_url?).to be_truthy
end
it 'creates an environment for the project' do
@@ -158,8 +164,8 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
end
it 'returns error when saving project ID fails' do
- allow(application_setting).to receive(:update).and_call_original
- allow(application_setting).to receive(:update)
+ allow(subject.application_settings).to receive(:update).and_call_original
+ allow(subject.application_settings).to receive(:update)
.with(self_monitoring_project_id: anything)
.and_return(false)
@@ -175,8 +181,8 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
let(:existing_project) { create(:project, namespace: existing_group) }
before do
- application_setting.instance_administrators_group_id = existing_group.id
- application_setting.self_monitoring_project_id = existing_project.id
+ application_setting.update(instance_administrators_group_id: existing_group.id,
+ self_monitoring_project_id: existing_project.id)
end
it 'returns success' do
@@ -189,7 +195,7 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
context 'when local requests from hooks and services are not allowed' do
before do
- application_setting.allow_local_requests_from_web_hooks_and_services = false
+ application_setting.update(allow_local_requests_from_web_hooks_and_services: false)
end
it_behaves_like 'has prometheus service', 'http://localhost:9090'
diff --git a/spec/lib/gitlab/gitaly_client/operation_service_spec.rb b/spec/lib/gitlab/gitaly_client/operation_service_spec.rb
index 563e0590482..45701b501bb 100644
--- a/spec/lib/gitlab/gitaly_client/operation_service_spec.rb
+++ b/spec/lib/gitlab/gitaly_client/operation_service_spec.rb
@@ -274,7 +274,6 @@ describe Gitlab::GitalyClient::OperationService do
end
describe '#user_squash' do
- let(:branch_name) { 'my-branch' }
let(:squash_id) { '1' }
let(:start_sha) { 'b83d6e391c22777fca1ed3012fce84f633d7fed0' }
let(:end_sha) { '54cec5282aa9f21856362fe321c800c236a61615' }
@@ -284,7 +283,6 @@ describe Gitlab::GitalyClient::OperationService do
repository: repository.gitaly_repository,
user: gitaly_user,
squash_id: squash_id.to_s,
- branch: branch_name,
start_sha: start_sha,
end_sha: end_sha,
author: gitaly_user,
@@ -295,7 +293,7 @@ describe Gitlab::GitalyClient::OperationService do
let(:response) { Gitaly::UserSquashResponse.new(squash_sha: squash_sha) }
subject do
- client.user_squash(user, squash_id, branch_name, start_sha, end_sha, user, commit_message)
+ client.user_squash(user, squash_id, start_sha, end_sha, user, commit_message)
end
it 'sends a user_squash message and returns the squash sha' do
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 2c6cfce7247..ae97e5340e2 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1401,6 +1401,22 @@ describe Project do
expect(project.repository_storage).to eq('picked')
end
+
+ it 'picks from the latest available storage', :request_store do
+ stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
+ Gitlab::CurrentSettings.current_application_settings
+
+ settings = ApplicationSetting.last
+ settings.repository_storages = %w(picked)
+ settings.save!
+
+ expect(Gitlab::CurrentSettings.repository_storages).to eq(%w(default))
+
+ project
+
+ expect(project.repository.storage).to eq('picked')
+ expect(Gitlab::CurrentSettings.repository_storages).to eq(%w(picked))
+ end
end
context 'shared runners by default' do