Skip to content
This repository was archived by the owner on Nov 30, 2024. It is now read-only.

Commit 79e7470

Browse files
author
Lucas Nestor
committed
Check for nil instead of truthiness when diffing
When trying to make a diff where either the expected or actual value was false, the diff would be an empty string. This change makes it to diff against the false value.
1 parent d68c94b commit 79e7470

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/rspec/support/differ.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Differ
1111
def diff(actual, expected)
1212
diff = ""
1313

14-
if actual && expected
14+
unless actual.nil? || expected.nil?
1515
if all_strings?(actual, expected)
1616
if any_multiline_strings?(actual, expected)
1717
diff = diff_as_string(coerce_to_string(actual), coerce_to_string(expected))

spec/rspec/support/differ_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,17 @@ def inspect; "<BrokenObject>"; end
468468
expect(diff).to be_diffed_as(expected_diff)
469469
end
470470
end
471+
472+
context 'when expected or actual is false' do
473+
it 'generates a diff' do
474+
expected = true
475+
actual = false
476+
expected_diff = "\n@@ -1,2 +1,2 @@\n-false\n+true\n"
477+
478+
diff = differ.diff(expected,actual)
479+
expect(diff).to be_diffed_as(expected_diff)
480+
end
481+
end
471482
end
472483
end
473484
end

0 commit comments

Comments
 (0)