@@ -367,18 +367,29 @@ defmodule ExUnit.Diff do
367367 map_pair = format_key_value ( key , val , keyword? )
368368 [ [ ins: ", " , ins: map_pair ] | acc ]
369369 end )
370+ result =
371+ if same == [ ] and altered == [ ] and missing != [ ] and surplus != [ ] do
372+ [ [ _ | elem_diff ] | rest ] = result
373+ [ elem_diff | rest ]
374+ else
375+ result
376+ end
377+
370378 result = Enum . reduce ( surplus , result , fn ( { key , val } , acc ) ->
371379 map_pair = format_key_value ( key , val , keyword? )
372380 [ [ del: ", " , del: map_pair ] | acc ]
373381 end )
382+
374383 result = Enum . reduce ( altered , result , fn ( { key , { val1 , val2 } } , acc ) ->
375384 value_diff = script_inner ( val1 , val2 )
376385 [ [ { :eq , ", " } , { :eq , format_key ( key , keyword? ) } , value_diff ] | acc ]
377386 end )
387+
378388 result = Enum . reduce ( same , result , fn ( { key , val } , acc ) ->
379389 map_pair = format_key_value ( key , val , keyword? )
380390 [ [ eq: ", " , eq: map_pair ] | acc ]
381391 end )
392+
382393 [ [ _ | elem_diff ] | rest ] = result
383394 [ { :eq , "%" <> name <> "{" } , [ elem_diff | rest ] , { :eq , "}" } ]
384395 end
0 commit comments