summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/database/loose_foreign_keys_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/database/loose_foreign_keys_spec.rb')
-rw-r--r--spec/lib/gitlab/database/loose_foreign_keys_spec.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/lib/gitlab/database/loose_foreign_keys_spec.rb b/spec/lib/gitlab/database/loose_foreign_keys_spec.rb
index ff99f681b0c..3c2d9ca82f2 100644
--- a/spec/lib/gitlab/database/loose_foreign_keys_spec.rb
+++ b/spec/lib/gitlab/database/loose_foreign_keys_spec.rb
@@ -112,4 +112,31 @@ RSpec.describe Gitlab::Database::LooseForeignKeys do
end
end
end
+
+ describe '.build_definition' do
+ context 'when child table schema is not defined' do
+ let(:loose_foreign_keys_yaml) do
+ {
+ 'ci_unknown_table' => [
+ {
+ 'table' => 'projects',
+ 'column' => 'project_id',
+ 'on_delete' => 'async_delete'
+ }
+ ]
+ }
+ end
+
+ subject { described_class.definitions }
+
+ before do
+ described_class.instance_variable_set(:@definitions, nil)
+ described_class.instance_variable_set(:@loose_foreign_keys_yaml, loose_foreign_keys_yaml)
+ end
+
+ it 'raises Gitlab::Database::GitlabSchema::UnknownSchemaError error' do
+ expect { subject }.to raise_error(Gitlab::Database::GitlabSchema::UnknownSchemaError)
+ end
+ end
+ end
end