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
path: root/spec/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-08-26 06:12:38 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-08-26 06:12:38 +0300
commitc593b347c9e0c362ef123af961e597d709e75521 (patch)
tree06c9be27b8b16501ec23f1adcbff4755756d9374 /spec/lib
parent34f4e3a0546d07f26530b1169c072d473bb5be8a (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/database_spec.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/lib/gitlab/database_spec.rb b/spec/lib/gitlab/database_spec.rb
index 452a662bdcb..c893bca9e62 100644
--- a/spec/lib/gitlab/database_spec.rb
+++ b/spec/lib/gitlab/database_spec.rb
@@ -237,6 +237,26 @@ RSpec.describe Gitlab::Database do
end
end
+ it 'does return a valid schema for a replica connection' do
+ with_replica_pool_for(ActiveRecord::Base) do |main_replica_pool|
+ expect(described_class.gitlab_schemas_for_connection(main_replica_pool.connection)).to include(:gitlab_main, :gitlab_shared)
+ end
+
+ with_replica_pool_for(Ci::ApplicationRecord) do |ci_replica_pool|
+ expect(described_class.gitlab_schemas_for_connection(ci_replica_pool.connection)).to include(:gitlab_ci, :gitlab_shared)
+ end
+ end
+
+ def with_replica_pool_for(base_model)
+ config = Gitlab::Database::LoadBalancing::Configuration.new(base_model, [base_model.connection_pool.db_config.host])
+ lb = Gitlab::Database::LoadBalancing::LoadBalancer.new(config)
+ pool = lb.create_replica_connection_pool(1)
+
+ yield pool
+ ensure
+ pool&.disconnect!
+ end
+
context "when there's CI connection", :request_store do
before do
skip_if_multiple_databases_not_setup