master
 1require "rails_helper"
 2
 3describe BackupFile do
 4  let(:user) { build(:user) }
 5
 6  def fixture_file(name)
 7    Rack::Test::UploadedFile.new(Rails.root.join("spec", "fixtures", name))
 8  end
 9
10  describe "#valid?" do
11    it "returns true for csv exports" do
12      csv_export = fixture_file("spreadsheet-stronglifts.csv")
13      subject = BackupFile.new(user, csv_export)
14      expect(subject).to be_valid
15    end
16
17    it "returns false" do
18      subject = BackupFile.new(user, fixture_file("unknown.file"))
19      expect(subject).to_not be_valid
20    end
21  end
22
23  describe "#process_later" do
24    let(:program) { build(:program) }
25    let(:csv) { fixture_file("spreadsheet-stronglifts.csv") }
26
27    it "creates a job to process later" do
28      allow(UploadStrongliftsBackupJob).to receive(:perform_later)
29      subject = BackupFile.new(user, csv)
30      subject.process_later(program)
31      expect(UploadStrongliftsBackupJob).to have_received(:perform_later)
32    end
33  end
34end