Sha256: 48b9df1a7982a3f528a4d7f32bde4a3be6bdc666fbe4d1dbea2db5cee3f31757

Contents?: true

Size: 1013 Bytes

Versions: 8

Compression:

Stored size: 1013 Bytes

Contents

require 'spec_helper'

describe VersionCake::VersionedRequest do
  context '#execute' do
    let(:request) { double 'Request' }
    let(:strategies) { [ instance_double('ExtractionStrategy', extract: request_version) ] }

    subject(:versioned_request) do
      request = VersionCake::VersionedRequest.new request, strategies
      request.execute
      request
    end

    context 'with a supported version' do
      let(:request_version) { 2 }

      it { expect(versioned_request.version).to eq 2 }
      it { expect(versioned_request.failed).to be_falsey }
    end

    context 'without a version' do
      let(:request_version) { nil }

      it { expect(versioned_request.version).to be_nil }
      it { expect(versioned_request.failed).to be_falsey }
    end

    context 'with a strategy failure' do
      let(:strategies) { [ lambda { raise 'Failed extraction' } ] }

      it { expect(versioned_request.version).to be_nil }
      it { expect(versioned_request.failed).to be_truthy }
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
versioncake-4.0.2 spec/unit/versioned_request_spec.rb
versioncake-4.0.1 spec/unit/versioned_request_spec.rb
versioncake-4.0.0 spec/unit/versioned_request_spec.rb
versioncake-3.4.0 spec/unit/versioned_request_spec.rb
versioncake-3.3.0 spec/unit/versioned_request_spec.rb
versioncake-3.2.0 spec/unit/versioned_request_spec.rb
versioncake-3.1.0 spec/unit/versioned_request_spec.rb
versioncake-3.0.0 spec/unit/versioned_request_spec.rb