discourse/plugins/chat/spec/support/api_schema_matcher.rb

17 lines
506 B
Ruby

# frozen_string_literal: true
RSpec::Matchers.define :match_response_schema do |schema|
match do |object|
schema_directory = "#{Dir.pwd}/plugins/chat/spec/support/api/schemas"
schema_path = "#{schema_directory}/#{schema}.json"
begin
JSON::Validator.validate!(schema_path, object, strict: true)
rescue JSON::Schema::ValidationError => e
puts "-- Printing response body after validation error\n"
pp object # rubocop:disable Lint/Debugger
raise e
end
end
end