diff options
Diffstat (limited to 'spec/workers/bulk_imports/pipeline_worker_spec.rb')
-rw-r--r-- | spec/workers/bulk_imports/pipeline_worker_spec.rb | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/spec/workers/bulk_imports/pipeline_worker_spec.rb b/spec/workers/bulk_imports/pipeline_worker_spec.rb index 03ec6267ca8..e8b0714471d 100644 --- a/spec/workers/bulk_imports/pipeline_worker_spec.rb +++ b/spec/workers/bulk_imports/pipeline_worker_spec.rb @@ -433,11 +433,11 @@ RSpec.describe BulkImports::PipelineWorker, feature_category: :importers do allow(status).to receive(:failed?).and_return(false) end - entity.update!(created_at: entity_created_at) + pipeline_tracker.update!(created_at: created_at) end context 'when timeout is not reached' do - let(:entity_created_at) { 1.minute.ago } + let(:created_at) { 1.minute.ago } it 'reenqueues pipeline worker' do expect(described_class) @@ -455,8 +455,8 @@ RSpec.describe BulkImports::PipelineWorker, feature_category: :importers do end end - context 'when timeout is reached' do - let(:entity_created_at) { 10.minutes.ago } + context 'when empty export timeout is reached' do + let(:created_at) { 10.minutes.ago } it 'marks as failed and logs the error' do expect_next_instance_of(Gitlab::Import::Logger) do |logger| @@ -485,12 +485,32 @@ RSpec.describe BulkImports::PipelineWorker, feature_category: :importers do expect(pipeline_tracker.reload.status_name).to eq(:failed) end end + + context 'when tracker created_at is nil' do + let(:created_at) { nil } + + it 'falls back to entity created_at' do + entity.update!(created_at: 10.minutes.ago) + + expect_next_instance_of(Gitlab::Import::Logger) do |logger| + expect(logger) + .to receive(:error) + .with( + hash_including('exception.message' => 'Empty export status on source instance') + ) + end + + subject.perform(pipeline_tracker.id, pipeline_tracker.stage, entity.id) + + expect(pipeline_tracker.reload.status_name).to eq(:failed) + end + end end context 'when job reaches timeout' do it 'marks as failed and logs the error' do - old_created_at = entity.created_at - entity.update!(created_at: (BulkImports::Pipeline::NDJSON_EXPORT_TIMEOUT + 1.hour).ago) + old_created_at = pipeline_tracker.created_at + pipeline_tracker.update!(created_at: (BulkImports::Pipeline::NDJSON_EXPORT_TIMEOUT + 1.hour).ago) expect_next_instance_of(Gitlab::Import::Logger) do |logger| expect(logger) |