Commit 13e9724
Changed files (2)
app
spec
app/jobs/upload_stronglifts_backup_job.rb
@@ -4,7 +4,9 @@ class UploadStrongliftsBackupJob < ActiveJob::Base
def perform(user, backup_file, program)
tmp_dir do |dir|
`unzip #{backup_file} -d #{dir}`
- importer_for(dir, user, program).import_from(dir)
+ ActiveRecord::Base.transaction do
+ importer_for(dir, user, program).import_from(dir)
+ end
end
end
@@ -19,7 +21,17 @@ class UploadStrongliftsBackupJob < ActiveJob::Base
def importer_for(directory, user, program)
[
Android::Import.new(user, program),
- Ios::Import.new(user, program)
+ Ios::Import.new(user, program),
+ UnknownFile.new
].detect { |x| x.can_parse?(directory) }
end
+
+ class UnknownFile
+ def can_parse?(directory)
+ true
+ end
+
+ def import_from(directory)
+ end
+ end
end
spec/jobs/upload_stronglifts_backup_job_spec.rb
@@ -28,5 +28,16 @@ describe UploadStrongliftsBackupJob, type: :job do
expect(user.training_sessions.count).to eql(9)
end
end
+
+ context "unknown filetype" do
+ let(:mailer) { double(deliver_later: true) }
+ let(:unknown_file) { __FILE__ }
+
+ it "does not raise an error" do
+ expect(->{
+ subject.perform(user, unknown_file, program)
+ }).to_not raise_error
+ end
+ end
end
end