Sha256: 47d37cff0461669a592cb2b127bf0a814f84bf455790c9204572566d79a8c3de

Contents?: true

Size: 865 Bytes

Versions: 2

Compression:

Stored size: 865 Bytes

Contents

require 'spec_helper'
require 'rack/test'

describe 'parameter exclusion' do
  include Rack::Test::Methods
  def app; App; end

  it 'returns 406 on requests that contain more than one mutually exclusive parameter' do
    params = [
      {a: 1, b: 2},
      {b: 2, c: 3},
      {a: 1, b: 2, c: 3}
    ]
    params.each do |param|
      get('/exclude', param) do |response|
        response.status.should == 406
        JSON.parse(response.body)['message'].should =~ /mutually exclusive/
      end
    end
  end

  it 'returns successfully for requests that only have one parameter' do
    params = [
      {a: 1},
      {b: 2},
      {c: 3},
      {a: 1, c: 3},
    ]
    params.each do |param|
      get('/exclude', param) do |response|
        response.status.should == 200
        JSON.parse(response.body)['message'].should =~ /OK/
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sinatra-param-0.1.1 spec/exclude_spec.rb
sinatra-param-0.1.0 spec/exclude_spec.rb