class RspecContracts::ResponseValidator

Public Class Methods

opts(has_content: true) click to toggle source
# File lib/rspec_contracts/response_validator.rb, line 17
def opts(has_content: true)
  OpenAPIParser::SchemaValidator::ResponseValidateOptions.new(strict: has_content &&
                                                              RspecContracts.config.strict_response_validation)
end
validate_response(op, resp) click to toggle source
# File lib/rspec_contracts/response_validator.rb, line 6
def validate_response(op, resp)
  op.validate_response(resp, opts(has_content: resp.content_type.present?))
rescue OpenAPIParser::OpenAPIError => e
  if RspecContracts.config.response_validation_mode == :raise
    raise RspecContracts::Error::ResponseValidation.new(e.message)
  end

  RspecContracts.config.logger.error "Contract validation warning: #{e.message}"
  RspecContracts.config.logger.error "Response was: #{resp}"
end