Sha256: aa5d936c17f6f59558060991c8597f6b75bc10d01e17dc2bb31c7d1211effeec

Contents?: true

Size: 720 Bytes

Versions: 1

Compression:

Stored size: 720 Bytes

Contents

require 'uri'
require 'rack/app'
module Rack::App::Test

  require 'rack/app/test/utils'
  require 'rack/app/test/singleton_methods'

  def self.included(klass)
    klass.__send__(:extend, self::SingletonMethods)
  end

  attr_reader :last_response

  [:get, :post, :put, :delete, :options, :patch].each do |request_method|
    define_method(request_method) do |*args|

      properties = args.select { |e| e.is_a?(Hash) }.reduce({}, &:merge!)
      url = args.select { |e| e.is_a?(String) }.first || properties.delete(:url)
      request = Rack::MockRequest.new(rack_app)
      env = Rack::App::Test::Utils.env_by(properties)

      return @last_response = request.__send__(request_method, url, env)

    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-app-3.0.0.alpha lib/rack/app/test.rb