aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/import.rb7
-rw-r--r--spec/models/import_spec.rb11
2 files changed, 16 insertions, 2 deletions
diff --git a/app/models/import.rb b/app/models/import.rb
index 6330bd560..060db8183 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -43,8 +43,11 @@ class Import < ActiveRecord::Base
end
def self.abort_old
- where('created_at < ?', 4.hours.ago)
- .update_all(status: 'aborted')
+ where(
+ 'created_at < ? AND status NOT IN (?)',
+ 4.hours.ago,
+ finished_statuses
+ ).update_all(status: 'aborted')
end
def notify_parent
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb
index 8c1037a48..aedcfe4ab 100644
--- a/spec/models/import_spec.rb
+++ b/spec/models/import_spec.rb
@@ -47,6 +47,17 @@ RSpec.describe Import, type: :model do
end
it "doesn't work on imports with a `finished_status`" do
+ Timecop.freeze(Time.now) do
+ import = create(
+ :workbench_import,
+ status: 'successful',
+ created_at: 4.hours.ago - 1.minute
+ )
+
+ Import.abort_old
+
+ expect(import.reload.status).to eq('successful')
+ end
end
end