diff options
| -rw-r--r-- | app/models/import.rb | 7 | ||||
| -rw-r--r-- | spec/models/import_spec.rb | 11 |
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 |
