Fix diff from using have_attributes with a hash #76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
have_attributes
matcher is not "supposed" to be used against ahash, but considering Hash is an object, it is still a perfectly valid
use case. Still, typically, such a test will probably fail, and so the
failure should show an appropriate diff. Currently, the representation
of the subject in said diff is very low-level, as the DefaultObject diff
formatter is being utilized (as Differs::ObjectHavingAttributes inherits
from Differs::DefaultObject, and Differs::DefaultObject uses
DiffFormatters::DefaultObject). Instead we should be using whatever
DiffFormatter is appropriate for the type of subject: hash, array, etc.
Changing this is non-trivial, but it is this with which the majority of
this commit is concerned.