Sha256: a93096b9a16a4323ace00d34b4cecfdddd21adae7dd6fa682881e682139a3459

Contents?: true

Size: 1.2 KB

Versions: 9

Compression:

Stored size: 1.2 KB

Contents

module RspecApiDocumentation
  class RackTestClient < ClientBase

    delegate :last_request, :last_response, :to => :rack_test_session
    private :last_request, :last_response

    def request_headers
      env_to_headers(last_request.env)
    end

    def response_headers
      last_response.headers
    end

    def query_string
      last_request.env["QUERY_STRING"]
    end

    def status
      last_response.status
    end

    def response_body
      last_response.body
    end

    def request_content_type
      last_request.content_type
    end

    def response_content_type
      last_response.content_type
    end

    protected

    def do_request(method, path, params, request_headers)
      rack_test_session.send(method, path, params, headers(method, path, params, request_headers))
    end

    def headers(*args)
      headers_to_env(super)
    end

    private

    def rack_test_session
      @rack_test_session ||= Struct.new(:app) do
        begin
          require "rack/test"
          include Rack::Test::Methods
        rescue LoadError
          raise "#{self.class.name} requires Rack::Test >= 0.5.5. Please add it to your test dependencies."
        end
      end.new(app)
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
rspec_api_documentation-2.0.0 lib/rspec_api_documentation/rack_test_client.rb
rspec-api-documentation-1.1.1.alpha lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-1.1.0 lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-1.0.0 lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-0.9.2 lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-0.9.1 lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-0.9.0 lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-0.8.0 lib/rspec_api_documentation/rack_test_client.rb
rspec_api_documentation-0.7.1 lib/rspec_api_documentation/rack_test_client.rb