Module: RspecApiDocs::After

Defined in:
lib/rspec_api_docs/after.rb,
lib/rspec_api_docs/after/type_checker.rb

Defined Under Namespace

Classes: TypeChecker

Constant Summary collapse

Hook =
-> (example) do
   = example.[METADATA_NAMESPACE]
  return unless 

  [:requests] ||= []
  [:requests] << [last_request, last_response]

  return unless RspecApiDocs.configuration.validate_params

  [:requests].each do |request, response|
    request.params.each do |key, value|
      parameter = RspecApiDocs::Resource::Example.new(example).parameters
        .select { |parameter| parameter.name == key.to_sym }.first

      if parameter
        After::TypeChecker.call(type: parameter.type, value: value)
      else
        raise UndocumentedParameter, "undocumented parameter included in request #{key.inspect}"
      end
    end
  end
end