Class: RspecContracts::ResponseValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec_contracts/response_validator.rb

Class Method Summary collapse

Class Method Details

.opts(has_content: true) ⇒ Object



17
18
19
20
# 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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# 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