Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/workers/bulk_imports/stuck_import_worker_spec.rb')
-rw-r--r--spec/workers/bulk_imports/stuck_import_worker_spec.rb59
1 files changed, 45 insertions, 14 deletions
diff --git a/spec/workers/bulk_imports/stuck_import_worker_spec.rb b/spec/workers/bulk_imports/stuck_import_worker_spec.rb
index eadf3864190..09fd1e1b524 100644
--- a/spec/workers/bulk_imports/stuck_import_worker_spec.rb
+++ b/spec/workers/bulk_imports/stuck_import_worker_spec.rb
@@ -5,10 +5,21 @@ require 'spec_helper'
RSpec.describe BulkImports::StuckImportWorker, feature_category: :importers do
let_it_be(:created_bulk_import) { create(:bulk_import, :created) }
let_it_be(:started_bulk_import) { create(:bulk_import, :started) }
- let_it_be(:stale_created_bulk_import) { create(:bulk_import, :created, created_at: 3.days.ago) }
- let_it_be(:stale_started_bulk_import) { create(:bulk_import, :started, created_at: 3.days.ago) }
- let_it_be(:stale_created_bulk_import_entity) { create(:bulk_import_entity, :created, created_at: 3.days.ago) }
- let_it_be(:stale_started_bulk_import_entity) { create(:bulk_import_entity, :started, created_at: 3.days.ago) }
+ let_it_be(:stale_created_bulk_import) do
+ create(:bulk_import, :created, updated_at: 3.days.ago)
+ end
+
+ let_it_be(:stale_started_bulk_import) do
+ create(:bulk_import, :started, updated_at: 3.days.ago)
+ end
+
+ let_it_be(:stale_created_bulk_import_entity) do
+ create(:bulk_import_entity, :created, updated_at: 3.days.ago)
+ end
+
+ let_it_be(:stale_started_bulk_import_entity) do
+ create(:bulk_import_entity, :started, updated_at: 3.days.ago)
+ end
let_it_be(:started_bulk_import_tracker) do
create(:bulk_import_tracker, :started, entity: stale_started_bulk_import_entity)
@@ -37,16 +48,12 @@ RSpec.describe BulkImports::StuckImportWorker, feature_category: :importers do
it 'updates the status of bulk import entities to timeout' do
expect_next_instance_of(BulkImports::Logger) do |logger|
allow(logger).to receive(:error)
- expect(logger).to receive(:error).with(
- message: 'BulkImports::Entity stale',
- bulk_import_entity_id: stale_created_bulk_import_entity.id,
- bulk_import_id: stale_created_bulk_import_entity.bulk_import_id
- )
- expect(logger).to receive(:error).with(
- message: 'BulkImports::Entity stale',
- bulk_import_entity_id: stale_started_bulk_import_entity.id,
- bulk_import_id: stale_started_bulk_import_entity.bulk_import_id
- )
+
+ expect(logger).to receive(:with_entity).with(stale_created_bulk_import_entity).and_call_original
+ expect(logger).to receive(:error).with(message: 'BulkImports::Entity stale')
+
+ expect(logger).to receive(:with_entity).with(stale_started_bulk_import_entity).and_call_original
+ expect(logger).to receive(:error).with(message: 'BulkImports::Entity stale')
end
expect { subject }.to change { stale_created_bulk_import_entity.reload.status_name }.from(:created).to(:timeout)
@@ -61,5 +68,29 @@ RSpec.describe BulkImports::StuckImportWorker, feature_category: :importers do
expect { subject }.to not_change { created_bulk_import.reload.status }
.and not_change { started_bulk_import.reload.status }
end
+
+ context 'when bulk import has been updated recently', :clean_gitlab_redis_shared_state do
+ before do
+ stale_created_bulk_import.update!(updated_at: 2.minutes.ago)
+ stale_started_bulk_import.update!(updated_at: 2.minutes.ago)
+ end
+
+ it 'does not update the status of the import' do
+ expect { subject }.to not_change { stale_created_bulk_import.reload.status_name }
+ .and not_change { stale_started_bulk_import.reload.status_name }
+ end
+ end
+
+ context 'when bulk import entity has been updated recently', :clean_gitlab_redis_shared_state do
+ before do
+ stale_created_bulk_import_entity.update!(updated_at: 2.minutes.ago)
+ stale_started_bulk_import_entity.update!(updated_at: 2.minutes.ago)
+ end
+
+ it 'does not update the status of the entity' do
+ expect { subject }.to not_change { stale_created_bulk_import_entity.reload.status_name }
+ .and not_change { stale_started_bulk_import_entity.reload.status_name }
+ end
+ end
end
end