summaryrefslogtreecommitdiff
path: root/spec/models/bulk_imports/failure_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/bulk_imports/failure_spec.rb')
-rw-r--r--spec/models/bulk_imports/failure_spec.rb36
1 files changed, 33 insertions, 3 deletions
diff --git a/spec/models/bulk_imports/failure_spec.rb b/spec/models/bulk_imports/failure_spec.rb
index cde62659a48..b3fd60ba348 100644
--- a/spec/models/bulk_imports/failure_spec.rb
+++ b/spec/models/bulk_imports/failure_spec.rb
@@ -3,15 +3,45 @@
require 'spec_helper'
RSpec.describe BulkImports::Failure, type: :model do
+ let(:failure) { create(:bulk_import_failure) }
+
describe 'associations' do
it { is_expected.to belong_to(:entity).required }
end
describe 'validations' do
- before do
- create(:bulk_import_failure)
+ it { is_expected.to validate_presence_of(:entity) }
+ end
+
+ describe '#relation' do
+ context 'when pipeline class is valid' do
+ it 'returns pipeline defined relation' do
+ failure.update!(pipeline_class: 'BulkImports::Common::Pipelines::WikiPipeline')
+
+ expect(failure.relation).to eq('wiki')
+ end
end
- it { is_expected.to validate_presence_of(:entity) }
+ context 'when pipeline class is invalid' do
+ it 'returns default relation' do
+ failure.update!(pipeline_class: 'foobar')
+
+ expect(failure.relation).to eq('foobar')
+ end
+
+ context 'when pipeline class is outside of BulkImports namespace' do
+ it 'returns default relation' do
+ failure.update!(pipeline_class: 'Gitlab::ImportExport::Importer')
+
+ expect(failure.relation).to eq('importer')
+ end
+ end
+
+ it 'returns demodulized, underscored, chomped string' do
+ failure.update!(pipeline_class: 'BulkImports::Pipelines::Test::TestRelationPipeline')
+
+ expect(failure.relation).to eq('test_relation')
+ end
+ end
end
end