Skip to content

Commit fe909c6

Browse files
committed
Fix the RSpec differ so it's less noisy
We don't need to show the diff after a failure for simple or primitive values.
1 parent 58a7b2d commit fe909c6

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

lib/super_diff/rspec/differ.rb

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,28 @@ module SuperDiff
22
module RSpec
33
module Differ
44
def self.diff(actual, expected)
5-
diff = SuperDiff::Differ.call(
6-
expected,
7-
actual,
8-
extra_operational_sequencer_classes: RSpec.extra_operational_sequencer_classes,
9-
extra_diff_formatter_classes: RSpec.extra_diff_formatter_classes,
5+
if (
6+
expected != actual &&
7+
expected.class == actual.class &&
8+
!expected.is_a?(Symbol) &&
9+
!expected.is_a?(Integer) &&
10+
!(
11+
expected.is_a?(String) &&
12+
actual.is_a?(String) &&
13+
!expected.include?("\n") &&
14+
!actual.include?("\n")
15+
)
1016
)
11-
"\n\n" + diff
17+
diff = SuperDiff::Differ.call(
18+
expected,
19+
actual,
20+
extra_operational_sequencer_classes: RSpec.extra_operational_sequencer_classes,
21+
extra_diff_formatter_classes: RSpec.extra_diff_formatter_classes,
22+
)
23+
"\n\n" + diff
24+
else
25+
""
26+
end
1227
end
1328
end
1429
end

0 commit comments

Comments
 (0)