diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-12-20 13:37:47 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-12-20 13:37:47 +0000 |
commit | aee0a117a889461ce8ced6fcf73207fe017f1d99 (patch) | |
tree | 891d9ef189227a8445d83f35c1b0fc99573f4380 /spec/models/concerns/loose_foreign_key_spec.rb | |
parent | 8d46af3258650d305f53b819eabf7ab18d22f59e (diff) | |
download | gitlab-ce-aee0a117a889461ce8ced6fcf73207fe017f1d99.tar.gz |
Add latest changes from gitlab-org/gitlab@14-6-stable-eev14.6.0-rc42
Diffstat (limited to 'spec/models/concerns/loose_foreign_key_spec.rb')
-rw-r--r-- | spec/models/concerns/loose_foreign_key_spec.rb | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/spec/models/concerns/loose_foreign_key_spec.rb b/spec/models/concerns/loose_foreign_key_spec.rb deleted file mode 100644 index 42da69eb75e..00000000000 --- a/spec/models/concerns/loose_foreign_key_spec.rb +++ /dev/null @@ -1,66 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe LooseForeignKey do - let(:project_klass) do - Class.new(ApplicationRecord) do - include LooseForeignKey - - self.table_name = 'projects' - - loose_foreign_key :issues, :project_id, on_delete: :async_delete - loose_foreign_key 'merge_requests', 'project_id', 'on_delete' => 'async_nullify' - end - end - - it 'exposes the loose foreign key definitions' do - definitions = project_klass.loose_foreign_key_definitions - - tables = definitions.map(&:to_table) - expect(tables).to eq(%w[issues merge_requests]) - end - - it 'casts strings to symbol' do - definition = project_klass.loose_foreign_key_definitions.last - - expect(definition.from_table).to eq('projects') - expect(definition.to_table).to eq('merge_requests') - expect(definition.column).to eq('project_id') - expect(definition.on_delete).to eq(:async_nullify) - end - - context 'validation' do - context 'on_delete validation' do - let(:invalid_class) do - Class.new(ApplicationRecord) do - include LooseForeignKey - - self.table_name = 'projects' - - loose_foreign_key :issues, :project_id, on_delete: :async_delete - loose_foreign_key :merge_requests, :project_id, on_delete: :async_nullify - loose_foreign_key :merge_requests, :project_id, on_delete: :destroy - end - end - - it 'raises error when invalid `on_delete` option was given' do - expect { invalid_class }.to raise_error /Invalid on_delete option given: destroy/ - end - end - - context 'inheritance validation' do - let(:inherited_project_class) do - Class.new(Project) do - include LooseForeignKey - - loose_foreign_key :issues, :project_id, on_delete: :async_delete - end - end - - it 'raises error when loose_foreign_key is defined in a child ActiveRecord model' do - expect { inherited_project_class }.to raise_error /Please define the loose_foreign_key on the Project class/ - end - end - end -end |