diff options
Diffstat (limited to 'spec/models/import_spec.rb')
| -rw-r--r-- | spec/models/import_spec.rb | 57 | 
1 files changed, 55 insertions, 2 deletions
| diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index 3e4128865..8b85f151b 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -10,8 +10,9 @@ RSpec.describe Import, type: :model do    it { should validate_presence_of(:workbench) }    it { should validate_presence_of(:creator) } -  it { should allow_value('file.zip').for(:file).with_message(I18n.t('activerecord.errors.models.import.attributes.file.wrong_file_extension')) } -  it { should_not allow_values('file.json', 'file.png', 'file.pdf').for(:file) } +  include ActionDispatch::TestProcess +  it { should allow_value(fixture_file_upload('OFFRE_TRANSDEV_2017030112251.zip')).for(:file) } +  it { should_not allow_value(fixture_file_upload('users.json')).for(:file).with_message(I18n.t('errors.messages.extension_whitelist_error', extension: '"json"', allowed_types: "zip")) }    let(:workbench_import) {netex_import.parent}    let(:workbench_import_with_completed_steps) do @@ -28,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) | 
