Sha256: ab8abf4ef708e593e368b2623f66d8314edcedf7309bf32c87029cdf3cdeba53

Contents?: true

Size: 1.73 KB

Versions: 2

Compression:

Stored size: 1.73 KB

Contents

require 'spec_helper'

describe NightcrawlerSwift::Upload do

  subject do
    NightcrawlerSwift::Upload.new
  end

  describe "#execute" do
    let(:path) { "file_name" }
    let(:file) do
      dir = File.expand_path(File.join(File.dirname(__FILE__), "../../fixtures/assets"))
      File.open(File.join(dir, "css1.css"))
    end

    let :connection do
      double :connection, upload_url: "server-url"
    end

    let :response do
      double(:response, code: 201)
    end

    before do
      allow(NightcrawlerSwift).to receive(:connection).and_return(connection)
      allow(subject).to receive(:put).and_return(response)
      allow(file).to receive(:read).and_return("content")
    end

    let :execute do
      subject.execute path, file
    end

    it "reads file content" do
      execute
      expect(file).to have_received(:read)
    end

    it "sends file content as body" do
      execute
      expect(subject).to have_received(:put).with(anything, hash_including(body: "content"))
    end

    it "sends file content_type as header" do
      execute
      expect(subject).to have_received(:put).with(anything, hash_including(headers: { content_type: "text/css"}))
    end

    it "sends to upload url with given path" do
      execute
      expect(subject).to have_received(:put).with("server-url/file_name", anything)
    end

    context "when response code is 200" do
      let(:response) { double(:response, code: 200) }
      it { expect(execute).to be true }
    end

    context "when response code is 201" do
      it { expect(execute).to be true }
    end

    context "when response code is different than 200 or 201" do
      let(:response) { double(:response, code: 500) }
      it { expect(execute).to be false }
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nightcrawler_swift-0.2.3 spec/lib/nightcrawler_swift/upload_spec.rb
nightcrawler_swift-0.2.2 spec/lib/nightcrawler_swift/upload_spec.rb