75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/rspec/enriched_json/expectation_helper_wrapper.rb', line 75
def handle_failure(matcher, message, failure_message_method)
original_message = nil
if message
original_message = matcher.send(failure_message_method)
end
super
rescue RSpec::Expectations::ExpectationNotMetError => e
expected_raw = (matcher, :expected, failure_message_method)
actual_raw = (matcher, :actual, failure_message_method)
negated = failure_message_method == :failure_message_when_negated
details = {
expected: Serializer.serialize_value(expected_raw),
actual: Serializer.serialize_value(actual_raw),
original_message: original_message,
matcher_name: matcher.class.name,
diffable: matcher.respond_to?(:diffable?) && matcher.diffable?,
negated: negated
}
if details[:diffable] && expected_raw && actual_raw
diff = generate_diff(actual_raw, expected_raw)
details[:diff] = diff unless diff.nil? || diff.strip.empty?
end
raise EnrichedExpectationNotMetError.new(e.message, details)
end
|