class Rack::Spec::Mock::RequestHandler

Public Class Methods

new(app: nil, **args) click to toggle source

@param app [Object] Rack application

Calls superclass method Rack::Spec::BaseRequestHandler::new
# File lib/rack/spec/mock.rb, line 20
def initialize(app: nil, **args)
  @app = app
  super(**args)
end

Public Instance Methods

call() click to toggle source

Returns dummy response if JSON schema is defined for the current link @return [Array] Rack response

# File lib/rack/spec/mock.rb, line 27
def call
  if has_link_for_current_action?
    dummy_response
  else
    @app.call(@env)
  end
end

Private Instance Methods

dummy_body() click to toggle source
# File lib/rack/spec/mock.rb, line 49
def dummy_body
  document = ResponseGenerator.call(schema_for_current_link)
  document = [document] if has_list_data?
  MultiJson.encode(document, pretty: true) + "\n"
end
dummy_headers() click to toggle source
# File lib/rack/spec/mock.rb, line 45
def dummy_headers
  { "Content-Type" => "application/json" }
end
dummy_response() click to toggle source
# File lib/rack/spec/mock.rb, line 37
def dummy_response
  [dummy_status, dummy_headers, [dummy_body]]
end
dummy_status() click to toggle source
# File lib/rack/spec/mock.rb, line 41
def dummy_status
  method == "POST" ? 201 : 200
end