diff options
| author | Johan Van Ryseghem | 2018-02-13 09:08:18 +0100 | 
|---|---|---|
| committer | GitHub | 2018-02-13 09:08:18 +0100 | 
| commit | 81cb1f8251e3506f7c75a229aabeaba3a83e6d8a (patch) | |
| tree | 1f35d87dba085495d31cf4588e67e3c3fa15089d /spec | |
| parent | 551c1117a4b9872c99508da71427f5a28fc31ddc (diff) | |
| parent | 2e346505cbf2f82c5aaf6fca37966a39b6c9656c (diff) | |
| download | chouette-core-81cb1f8251e3506f7c75a229aabeaba3a83e6d8a.tar.bz2 | |
Merge pull request #287 from af83/4963-import-cron-should-abort-old-imports
4963 import cron should abort old imports
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/models/import_spec.rb | 52 | 
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index ffb2360c2..8b85f151b 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -29,6 +29,58 @@ RSpec.describe Import, type: :model do      )    end +  describe ".abort_old" do +    it "changes imports older than 4 hours to aborted" do +      Timecop.freeze(Time.now) do +        old_import = create( +          :workbench_import, +          status: 'pending', +          created_at: 4.hours.ago - 1.minute +        ) +        current_import = create(:workbench_import, status: 'pending') + +        Import.abort_old + +        expect(current_import.reload.status).to eq('pending') +        expect(old_import.reload.status).to eq('aborted') +      end +    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 + +    it "only works on the caller type" do +      Timecop.freeze(Time.now) do +        workbench_import = create( +          :workbench_import, +          status: 'pending', +          created_at: 4.hours.ago - 1.minute +        ) +        netex_import = create( +          :netex_import, +          status: 'pending', +          created_at: 4.hours.ago - 1.minute +        ) + +        NetexImport.abort_old + +        expect(workbench_import.reload.status).to eq('pending') +        expect(netex_import.reload.status).to eq('aborted') +      end +    end +  end +    describe "#destroy" do      it "must destroy all child imports" do        netex_import = create(:netex_import)  | 
