Sha256: a373e759bb930dab85b5821c74efffd4456438ad66d6610a80567a8d9d9b2061

Contents?: true

Size: 753 Bytes

Versions: 4

Compression:

Stored size: 753 Bytes

Contents

require "json-schema"
require "json_matchers/payload"

module JsonMatchers
  class Validator
    def initialize(options:, response:, schema_path:)
      @options = options.dup
      @payload = Payload.new(response).to_s
      @schema_path = schema_path.to_s
    end

    def validate!
      if recording_errors?
        validate_recording_errors
      else
        validate
      end
    end

    private

    attr_reader :options, :payload, :schema_path

    def recording_errors?
      options.fetch(:record_errors, false)
    end

    def validate_recording_errors
      JSON::Validator.fully_validate(schema_path, payload, options)
    end

    def validate
      JSON::Validator.validate!(schema_path, payload, options)

      []
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
json_matchers-0.7.3 lib/json_matchers/validator.rb
json_matchers-0.7.2 lib/json_matchers/validator.rb
json_matchers-0.7.1 lib/json_matchers/validator.rb
json_matchers-0.7.0 lib/json_matchers/validator.rb