class RSpec::Hanami::RequestHelpers::Request

Public Class Methods

new(method, path, options) click to toggle source
# File lib/rspec/hanami/request_helpers.rb, line 5
def initialize(method, path, options)
  @path, @query_string = path.split('?', 2)
  @method = method
  @params = options[:params]
  @headers = options[:headers] || {}
end

Public Instance Methods

default_env() click to toggle source
# File lib/rspec/hanami/request_helpers.rb, line 26
def default_env
  {
    'SCRIPT_NAME' => '',
    'SERVER_NAME' => 'localhost',
    'SERVER_PORT' => '800613',
    'rack.version' => [1, 3],
    'rack.url_scheme' => 'http',
    'rack.input' => StringIO.new,
    'rack.errors' => StringIO.new,
    'rack.multithread' => false,
    'rack.multiprocess' => false,
    'rack.run_once' => false,
    'rack.hijack?' => false
  }
end
env() click to toggle source
# File lib/rspec/hanami/request_helpers.rb, line 12
def env
  default_env.tap do |env|
    env['PATH_INFO']      = @path
    env['REQUEST_METHOD'] = @method
    env['QUERY_STRING']   = "?#{@query_string}"
    env['rack.input']     = StringIO.new(@params.to_json) if @params

    @headers.each do |key, value|
      rack_name = key.to_s.upcase.tr('-', '_')
      env["HTTP_#{rack_name}"] = value
    end
  end
end