New tests (one currently failing): Non-immerable instances #674
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.
I recently got tripped up by Immer silently misbehaving when the top-level
baseState
was a plain object, but within it was a class instance. Had I read the manual more carefully, I would have been aware of theimmerable
requirement, but nonetheless it would have been helpful if Immer had thrown a noisy error. This PR adds two tests, both testing that an error is thrown if you try to use Immer with an instance of a non-immerable
class. One of the tests fails, as no error is thrown forWould it be possible to have Immer throw its [Immer] produce can only be called on things that are draftable... error in this case? I'm afraid I'm not familiar enough with the internals of Immer to propose a fix, but hopefully these tests will be useful.
Thanks!