Sha256: d74498c234a8049b22dde286b1e610c5c4739ae3d43f957dacd519cfbf1c1fbf

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'
module Alf
  module Rest
    describe Middleware, 'its Rack behavior' do
      include Rack::Test::Methods

      def mock_app(&bl)
        Class.new(Sinatra::Base) do
          set :environment, :test

          disable :dump_errors
          disable :logging
          disable :dump_errors
          enable :raise_errors
          disable :show_exceptions

          class_config = nil
          use Alf::Rest do |cfg|
            cfg.database = Alf::Database.new(Path.dir)
            class_config  = cfg
            bl.call(cfg) if bl
          end

          get '/check-config' do
            check  = env[Rest::RACK_CONFIG_KEY].is_a?(Config)
            check &= env[Rest::RACK_CONFIG_KEY] != class_config
            check.to_s
          end

          get '/generate-error' do
            raise "blah"
          end
        end
      end

      context 'on a default app' do
        let(:app){ mock_app }

        it 'sets a duplicata of the configuration' do
          get '/check-config'
          last_response.body.should eq("true")
        end
      end

      context 'when an error occurs' do
        let(:app){ mock_app }

        it 'raises the Error outside the app' do
          lambda{ get '/generate-error' }.should raise_error(/blah/)
        end
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
alf-rest-0.17.1 spec/unit/middleware/test_behavior.rb
alf-rest-0.16.3 spec/unit/middleware/test_behavior.rb
alf-rest-0.16.2 spec/unit/middleware/test_behavior.rb
alf-rest-0.16.1 spec/unit/middleware/test_behavior.rb
alf-rest-0.16.0 spec/unit/middleware/test_behavior.rb
alf-rest-0.14.0 spec/unit/middleware/test_behavior.rb