Sha256: 947e34ade9b395428e78e375b0cc5bea98924cfb823c899fb0183a701c52d21a

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

require 'spec_helper'
require 'rack/test'

describe 'web tarball serving' do
  include Rack::Test::Methods

  def app
    Sinatra::Application
  end

  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

2 entries across 2 versions & 1 rubygems

Version Path
fourchette-0.0.8 spec/lib/web/tarball_spec.rb
fourchette-0.0.7 spec/lib/web/tarball_spec.rb