diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-20 02:18:09 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-20 02:18:09 +0300 |
commit | 6ed4ec3e0b1340f96b7c043ef51d1b33bbe85fde (patch) | |
tree | dc4d20fe6064752c0bd323187252c77e0a89144b /spec/lib/gitlab/database_spec.rb | |
parent | 9868dae7fc0655bd7ce4a6887d4e6d487690eeed (diff) |
Add latest changes from gitlab-org/gitlab@15-4-stable-eev15.4.0-rc42
Diffstat (limited to 'spec/lib/gitlab/database_spec.rb')
-rw-r--r-- | spec/lib/gitlab/database_spec.rb | 20 |
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 |