Sha256: 6ad214f8a9ebea1c4b6f6571635e40d94abc277c5d0b47d9a32ff3e99b362dc7

Contents?: true

Size: 787 Bytes

Versions: 6

Compression:

Stored size: 787 Bytes

Contents

RSpec::Matchers.define :match_response_schema do |schema|
  match do |response|
    schema_path = RSpec.configuration.schema_response_root.join("#{schema}.json")
    schemer = JSONSchemer.schema(schema_path)

    @errors = schemer.validate(JSON.parse(response.body))

    @errors.none?
  end

  failure_message do |_|
    @errors.map { |error| JSONSchemer::Errors.pretty error }
  end
end

RSpec::Matchers.define :match_request_schema do |schema|
  match do |request|
    schema_path = RSpec.configuration.schema_request_root.join("#{schema}.json")
    schemer = JSONSchemer.schema(schema_path)

    @errors = schemer.validate(JSON.parse(request.body.readpartial))

    @errors.none?
  end

  failure_message do |_|
    @errors.map { |error| JSONSchemer::Errors.pretty error }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
infinum_json_api_setup-0.0.8 lib/infinum_json_api_setup/rspec/matchers/schema_matchers.rb
infinum_json_api_setup-0.0.7 lib/infinum_json_api_setup/rspec/matchers/schema_matchers.rb
infinum_json_api_setup-0.0.6 lib/infinum_json_api_setup/rspec/matchers/schema_matchers.rb
infinum_json_api_setup-0.0.5 lib/infinum_json_api_setup/rspec/matchers/schema_matchers.rb
infinum_json_api_setup-0.0.4 lib/infinum_json_api_setup/rspec/matchers/schema_matchers.rb
infinum_json_api_setup-0.0.3 lib/infinum_json_api_setup/rspec/matchers/schema_matchers.rb