From f9cb9e424411734ee716128c91de3ae3aece608d Mon Sep 17 00:00:00 2001 From: Marco Roth Date: Tue, 28 Jan 2025 23:43:58 +0100 Subject: [PATCH] Fallback to `diff_strings` when `assert_equal_*` has no syntactic changes --- lib/quickdraw/assertions.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/quickdraw/assertions.rb b/lib/quickdraw/assertions.rb index f467141..3c60d71 100644 --- a/lib/quickdraw/assertions.rb +++ b/lib/quickdraw/assertions.rb @@ -23,6 +23,7 @@ def assert_equal_sql(actual, expected) assert(actual == expected) do diff = DIFFER.diff_sql(actual, expected) + diff = DIFFER.diff_strings(actual, expected) if no_syntactic_changes?(diff) "Expected SQL strings to be equal (compared with `actual == expected`):\n\n#{diff}" end @@ -35,6 +36,7 @@ def assert_equal_html(actual, expected) assert(actual == expected) do diff = DIFFER.diff_html(actual, expected) + diff = DIFFER.diff_strings(actual, expected) if no_syntactic_changes?(diff) "Expected HTML strings to be equal (compared with `actual == expected`):\n\n#{diff}" end @@ -47,6 +49,7 @@ def assert_equal_ruby(actual, expected) assert(actual == expected) do diff = DIFFER.diff_ruby(actual, expected) + diff = DIFFER.diff_strings(actual, expected) if no_syntactic_changes?(diff) "Expected Ruby strings to be equal (compared with `actual == expected`):\n\n#{diff}" end @@ -151,4 +154,14 @@ def refute_same(actual, expected) "expected #{actual.inspect} not to be the same object as #{expected.inspect}" end end + + private + + def syntactic_changes?(diff) + !no_syntactic_changes?(diff) + end + + def no_syntactic_changes?(diff) + diff.include?("No syntactic changes.") + end end