Commit a695538
Changed files (4)
app
models
ios
spec
models
ios
app/jobs/upload_stronglifts_backup_job.rb
@@ -18,7 +18,8 @@ class UploadStrongliftsBackupJob < ActiveJob::Base
def importer_for(directory, user, program)
[
- Android::Import.new(user, program)
+ Android::Import.new(user, program),
+ Ios::Import.new(user, program)
].find { |x| x.can_parse?(directory) }
end
end
app/models/ios/import.rb
@@ -0,0 +1,11 @@
+class Ios::Import
+ def initialize(user, program)
+ end
+
+ def can_parse?(directory)
+ File.exist?(File.join(directory, "SLDB.sqlite"))
+ end
+
+ def import_from(directory)
+ end
+end
spec/jobs/upload_stronglifts_backup_job_spec.rb
@@ -16,5 +16,17 @@ describe UploadStrongliftsBackupJob, type: :job do
expect(user.training_sessions.count).to eql(31)
end
end
+
+ context "ios backup" do
+ let(:backup_file) do
+ Rails.root.join("spec", "fixtures", "backup.ios.stronglifts").to_s
+ end
+
+ it "adds each workout to the list of training sessions for the user" do
+ subject.perform(user, backup_file, program)
+
+ expect(user.training_sessions.count).to eql(31)
+ end
+ end
end
end
spec/models/ios/import_spec.rb
@@ -0,0 +1,27 @@
+require "rails_helper"
+
+describe Ios::Import do
+ subject { Ios::Import.new(user, program) }
+ let(:user) { build(:user) }
+ let(:program) { build(:program) }
+
+ describe "#can_parse?" do
+ let(:directory) { Dir.mktmpdir }
+
+ context "when the directory contains the ios backup db" do
+ before :each do
+ FileUtils.touch("#{directory}/SLDB.sqlite")
+ end
+
+ it "returns true" do
+ expect(subject.can_parse?(directory)).to be_truthy
+ end
+ end
+
+ context "when the directory does not have the ios backup db" do
+ it "returns false" do
+ expect(subject.can_parse?(directory)).to be_falsey
+ end
+ end
+ end
+end