RSpec::Matchers.define :match_schema do |version: '2.0'| match do |actual| schema = License::Management.root .join("spec/fixtures/schema/v#{version}.json") .to_s @errors = JSON::Validator.fully_validate(schema, actual) @errors.empty? end failure_message do |response| "didn't match the schema for version #{version}" \ " The validation errors were:\n#{@errors.join("\n")}" end end