Sha256: a8cc157a4f86e5ed8382c56a2d9e0d6e51512e52d869fbee37a9435122f878c0

Contents?: true

Size: 1.83 KB

Versions: 6

Compression:

Stored size: 1.83 KB

Contents

require './lib/second_curtain/upload_manager'
require './lib/second_curtain/upload'

describe UploadManager do
  it "should have instance variables set correctly upon initialization" do
    bucket = double()
    path_prefix = "test/"
    upload_manager = UploadManager.new(bucket, path_prefix)

    expect(upload_manager.instance_variable_get(:@uploads)).to eq([])
    expect(upload_manager.instance_variable_get(:@path_prefix)).to eq(path_prefix)
    expect(upload_manager.instance_variable_get(:@bucket)).to eq(bucket)
  end 

  it "propertly enqueues new uploads" do
    bucket = double()
    path_prefix = "test/"
    upload_manager = UploadManager.new(bucket, path_prefix)
    uploads = upload_manager.instance_variable_get(:@uploads)
    expect(uploads.count).to eq(0)

    upload_manager.enqueue_upload('expected', 'actual')
    uploads = upload_manager.instance_variable_get(:@uploads)
    expect(uploads.count).to eq(1)

    upload = uploads[0]
    expect(upload.expected_path).to eq('expected')
    expect(upload.actual_path).to eq('actual')
  end

  it "returns nil when uploading nothing" do
    bucket = double()
    path_prefix = "test/"
    upload_manager = UploadManager.new(bucket, path_prefix)

    expect(upload_manager.upload("test/")).to eq(nil)
  end

  it "properly uploads" do
    double = double()
    expect(double).to receive(:write)
    expect(double).to receive(:public_url).and_return("http://example.com")

    bucket = double()
    expect(bucket).to receive(:objects).and_return({
      "test/folder/index.html" => double
    })

    path_prefix = "test/"
    upload_manager = UploadManager.new(bucket, path_prefix)

    upload = double()
    expect(upload).to receive(:upload)

    upload_manager.instance_variable_set(:@uploads, [upload])

    result = upload_manager.upload("folder")
    expect(result).to eq("http://example.com")
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
second_curtain-0.6.0 spec/second_shutter/upload_manager_spec.rb
second_curtain-0.5.0 spec/second_shutter/upload_manager_spec.rb
second_curtain-0.4.0 spec/second_shutter/upload_manager_spec.rb
second_curtain-0.3.0 spec/second_shutter/upload_manager_spec.rb
second_curtain-0.2.4 spec/second_shutter/upload_manager_spec.rb
second_curtain-0.2.3 spec/second_shutter/upload_manager_spec.rb