summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/database/gitlab_schema_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 15:40:28 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 15:40:28 +0000
commitb595cb0c1dec83de5bdee18284abe86614bed33b (patch)
tree8c3d4540f193c5ff98019352f554e921b3a41a72 /spec/lib/gitlab/database/gitlab_schema_spec.rb
parent2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff)
downloadgitlab-ce-b595cb0c1dec83de5bdee18284abe86614bed33b.tar.gz
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'spec/lib/gitlab/database/gitlab_schema_spec.rb')
-rw-r--r--spec/lib/gitlab/database/gitlab_schema_spec.rb19
1 files changed, 10 insertions, 9 deletions
diff --git a/spec/lib/gitlab/database/gitlab_schema_spec.rb b/spec/lib/gitlab/database/gitlab_schema_spec.rb
index 611b2fbad72..72950895022 100644
--- a/spec/lib/gitlab/database/gitlab_schema_spec.rb
+++ b/spec/lib/gitlab/database/gitlab_schema_spec.rb
@@ -3,26 +3,27 @@ require 'spec_helper'
RSpec.describe Gitlab::Database::GitlabSchema do
describe '.tables_to_schema' do
- subject { described_class.tables_to_schema }
-
it 'all tables have assigned a known gitlab_schema' do
- is_expected.to all(
- match([be_a(String), be_in([:gitlab_internal, :gitlab_shared, :gitlab_main, :gitlab_ci])])
+ expect(described_class.tables_to_schema).to all(
+ match([be_a(String), be_in(Gitlab::Database.schemas_to_base_models.keys.map(&:to_sym))])
)
end
# This being run across different databases indirectly also tests
# a general consistency of structure across databases
- Gitlab::Database.database_base_models.each do |db_config_name, db_class|
- let(:db_data_sources) { db_class.connection.data_sources }
-
+ Gitlab::Database.database_base_models.select { |k, _| k != 'geo' }.each do |db_config_name, db_class|
context "for #{db_config_name} using #{db_class}" do
+ let(:db_data_sources) { db_class.connection.data_sources }
+
+ # The Geo database does not share the same structure as all decomposed databases
+ subject { described_class.tables_to_schema.select { |_, v| v != :gitlab_geo } }
+
it 'new data sources are added' do
missing_tables = db_data_sources.to_set - subject.keys
expect(missing_tables).to be_empty, \
"Missing table(s) #{missing_tables.to_a} not found in #{described_class}.tables_to_schema. " \
- "Any new tables must be added to lib/gitlab/database/gitlab_schemas.yml."
+ "Any new tables must be added to #{described_class::GITLAB_SCHEMAS_FILE}."
end
it 'non-existing data sources are removed' do
@@ -30,7 +31,7 @@ RSpec.describe Gitlab::Database::GitlabSchema do
expect(extra_tables).to be_empty, \
"Extra table(s) #{extra_tables.to_a} found in #{described_class}.tables_to_schema. " \
- "Any removed or renamed tables must be removed from lib/gitlab/database/gitlab_schemas.yml."
+ "Any removed or renamed tables must be removed from #{described_class::GITLAB_SCHEMAS_FILE}."
end
end
end