Sha256: 6f7be42edf4d9889051cf69e8d3f0359f35127635bcb443f1b9ddad1f2c68702

Contents?: true

Size: 1001 Bytes

Versions: 3

Compression:

Stored size: 1001 Bytes

Contents

require "spec_helper"
require "support/sinatra_helper"

describe "web tarball serving" do
  context "valid and not expired URL" do
    it "returns the file" do
      expire_in_2_secs = Time.now.to_i + 2
      Fourchette::Tarball.any_instance
        .should_receive(:filepath)
        .with("1234567", expire_in_2_secs.to_s)
        .and_return { "#{Dir.pwd}/spec/factories/fake_file" }

      get "/jipiboily/fourchette/1234567/#{expire_in_2_secs}"
      expect(last_response.headers["Content-Type"]).to eq "application/x-tgz"
      expect(last_response.body).to eq "some content..."
    end
  end

  context "expired URL" do
    it "does NOT returns the file if it is expired" do
      expired_one_sec_ago = Time.now.to_i - 1
      get "/jipiboily/fourchette/1234567/#{expired_one_sec_ago}"
      expect(last_response).not_to be_ok
      expect(last_response.body).not_to eq("Hello World")
      expect(last_response.status).to eq(404)
      subject.should_not_receive(:send_file)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fourchette-0.1.2 spec/lib/web/tarball_spec.rb
fourchette-0.1.1 spec/lib/web/tarball_spec.rb
fourchette-0.1.0 spec/lib/web/tarball_spec.rb