Commit 070f8c1

mo khan <mo@mokhan.ca>
2015-06-16 02:15:02
add spec to download a file from drive.
1 parent 3c0403b
app/jobs/download_from_drive_job.rb
@@ -9,20 +9,13 @@ class DownloadFromDriveJob < ActiveJob::Base
         download_path,
         params[:accessToken]
       ))
-      UploadStrongliftsBackupJob.perform_later(
-        user,
-        storage.store(File.new(download_path)),
-        Program.stronglifts
-      )
+      backup_file = BackupFile.new(user, File.new(download_path))
+      backup_file.process_later(Program.stronglifts)
     end
   end
 
   private
 
-  def storage
-    @storage ||= TemporaryStorage.new
-  end
-
   def create_command(download_url, download_path, access_token)
     command = <<-COMMAND
 curl '#{download_url}' \
@@ -32,7 +25,7 @@ curl '#{download_url}' \
 -H 'Origin: http://stronglifters.dev' \
 -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36' \
 --compressed
-COMMAND
+    COMMAND
     command
   end
 
spec/jobs/download_from_drive_job_spec.rb
@@ -1,5 +1,25 @@
-require 'rails_helper'
+require "rails_helper"
 
 RSpec.describe DownloadFromDriveJob, type: :job do
-  pending "add some examples to (or delete) #{__FILE__}"
+  describe "#perform" do
+    let(:user) { build(:user) }
+    let(:params) do
+      {
+        accessToken: access_token,
+        data: {
+          title: filename,
+          downloadUrl: 'https://www.stronglifters.com/'
+        },
+      }
+    end
+    let(:filename) { "#{FFaker::Internet.user_name}.html" }
+    let(:access_token) { FFaker::Internet.user_name }
+    let(:backup_file) { double(process_later: true) }
+
+    it "downloads the file for further processing" do
+      allow(BackupFile).to receive(:new).and_return(backup_file)
+      subject.perform(user, params)
+      expect(backup_file).to have_received(:process_later).with(Program.stronglifts)
+    end
+  end
 end