Sha256: dc2e256615f5c14bbc00f73f448e0f5118da6e82fbdaa614d2e4615adf4085df

Contents?: true

Size: 1.13 KB

Versions: 5

Compression:

Stored size: 1.13 KB

Contents

require 'spec_helper'

describe VersionCake::PathParameterStrategy do
  let(:strategy) { VersionCake::PathParameterStrategy.new }
  subject { strategy.extract(request) }

  context "a request with an api_version path parameter retrieves the version" do
    let(:request) { instance_double('Request', path: 'api/v11/parameter') }

    it { is_expected.to eq 11 }
  end

  context "a request with a substring matching /v\d+/ returns nil" do
    context "as a postpended string" do
      let(:request) { instance_double('Request', path: 'parameter/aav11/parameter') }

      it { is_expected.to be_nil }
    end

    context "as a prepended string" do
      let(:request) { instance_double('Request', path: 'parameter/v11aa/parameter') }

      it { is_expected.to be_nil }
    end

    context "as an interstital string" do
      let(:request) { instance_double('Request', path: 'parameter/aav11aa/parameter') }

      it { is_expected.to be_nil }
    end
  end

  context "a request without an api_version path parameter returns nil" do
    let(:request) { instance_double('Request', path: 'parameter/parameter') }

    it { is_expected.to be_nil }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
versioncake-4.1.1 spec/unit/strategies/path_parameter_strategy_spec.rb
versioncake-4.1.0 spec/unit/strategies/path_parameter_strategy_spec.rb
versioncake-4.0.2 spec/unit/strategies/path_parameter_strategy_spec.rb
versioncake-4.0.1 spec/unit/strategies/path_parameter_strategy_spec.rb
versioncake-4.0.0 spec/unit/strategies/path_parameter_strategy_spec.rb