class RspecContracts::PathValidator

Public Class Methods

operation_matches_request?(op, method, path) click to toggle source
# File lib/rspec_contracts/path_validator.rb, line 16
def operation_matches_request?(op, method, path)
  op == op.root.request_operation(method.to_sym, path)&.operation_object
end
validate_path(op, method, path) click to toggle source
# File lib/rspec_contracts/path_validator.rb, line 6
def validate_path(op, method, path)
  lookup_path = path.remove(RspecContracts.config.base_path)
  return if operation_matches_request?(op, method, lookup_path)

  msg = "#{method.upcase} #{path} does not resolve to #{op.operation_id}"
  raise RspecContracts::Error::PathValidation.new(msg) if RspecContracts.config.path_validation_mode == :raise

  RspecContracts.config.logger.error "Contract validation warning: #{msg}"
end