Sha256: 6eaabb3578dbe039dd4069ae2a0665171c0f26a1b32173eabeca6aa014200864

Contents?: true

Size: 906 Bytes

Versions: 3

Compression:

Stored size: 906 Bytes

Contents

shared = proc do
  let(:rack_key_value) { :Value }

  let(:default_env) do
    {
      'REQUEST_METHOD'  => 'GET',
      'SERVER_NAME'     => 'example.org',
      'SERVER_PORT'     => '80',
      'PATH_INFO'       => '/',
      'rack.url_scheme' => 'http'
    }
  end

  let(:expected_value) { rack_key_value                                }
  let(:env)            { default_env.merge(rack_key => rack_key_value) }
  let(:object)         { described_class.new(env)                      }
end

shared_examples_for 'a rack env accessor' do
  instance_eval(&shared)

  it { should eql(expected_value) }

  it 'should not freeze the input env' do
    subject
    env.frozen?.should be(false)
  end
end

shared_examples_for 'an invalid rack env accessor' do
  instance_eval(&shared)

  it 'should raise error' do
    expect { subject }.to raise_error(Request::Rack::InvalidKeyError, expected_message)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
request-0.0.6 spec/shared/rack_env_accessor_behavior.rb
request-0.0.5 spec/shared/rack_env_accessor_behavior.rb
request-0.0.4 spec/shared/rack_env_accessor_behavior.rb