Sha256: 6814d466b1c315b8c51fc853fadffde9586299bb85d7ee529528f05e86569479

Contents?: true

Size: 992 Bytes

Versions: 2

Compression:

Stored size: 992 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
      expect_any_instance_of(Fourchette::Tarball)
        .to receive(:filepath)
        .with('1234567', expire_in_2_secs.to_s) { "#{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)
      expect(subject).not_to receive(:send_file)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fourchette-0.1.4 spec/lib/web/tarball_spec.rb
fourchette-0.1.3 spec/lib/web/tarball_spec.rb