Pinning tests with Snapper
Let’s say you’ve inherited some complex legacy code that returns an object with a lot of properties. Some of these properties may, in turn, contain other complex objects with their own nest of properties. You’re just starting to work with this code and need to make a change, but there aren’t any tests in place and you’re not even sure what properties are important to verify.
I’ve seen this scenario a few times now and can attest that a special testing library called Snapper is a fantastic solution to this problem.
What Snapper does is it creates a snapshot of an object and stores it to disk in a JSON file. When Snapper next runs, it generates another snapshot and then compares it to the snapshot it stored previously. If the snapshots differ at all, Snapper will fail the test and alert you to that problem.
Snapper and Jest
For those of you with a JavaScript background, Snapper was inspired by the snapshot...