in spec/support/crawl_response_matchers.rb [39:73]
def failure_message_template(results, expected_results)
missing = []
extra = results.map(&:clone)
expected_results.each do |expected_result|
result_index = extra.index { |result| expected_result.equal_for_specified_keys?(result) }
if result_index
extra.delete_at(result_index)
else
missing << expected_result
end
end
out = +''
if missing.present?
out << "MISSING #{missing.length} result(s):\n"
missing.each_with_index { |m, i| out << " #{i}: #{m}\n" }
end
if extra.present?
out << "#{extra.length} EXTRA result(s):\n"
extra.each_with_index { |e, i| out << " #{i}: #{e}\n" }
end
out << "\n\n"
out << "Actual results:\n"
results.each_with_index { |r, i| out << " #{i}: #{r}\n" }
out << "Expected results:\n"
expected_results.each_with_index { |e, i| out << " #{i}: #{e}\n" }
out
end