class Pacto::Validators::ResponseHeaderValidator
Constants
- HeaderValidatorMap
Public Class Methods
new(app)
click to toggle source
# File lib/pacto/validators/response_header_validator.rb, line 4 def initialize(app) @app = app end
validate(expected_headers, actual_headers)
click to toggle source
# File lib/pacto/validators/response_header_validator.rb, line 15 def self.validate(expected_headers, actual_headers) actual_headers = Pacto::Extensions.normalize_header_keys actual_headers headers_to_validate = Pacto::Extensions.normalize_header_keys expected_headers headers_to_validate.map do |expected_header, expected_value| if actual_headers.key? expected_header actual_value = actual_headers[expected_header] HeaderValidatorMap[expected_header].call(expected_value, actual_value) else "Missing expected response header: #{expected_header}" end end.compact end
Public Instance Methods
call(env)
click to toggle source
# File lib/pacto/validators/response_header_validator.rb, line 8 def call(env) expected_headers = env[:contract].response.headers actual_headers = env[:actual_response].headers env[:validation_results].concat self.class.validate(expected_headers, actual_headers) @app.call env end