Open TheJaredWilcurt opened 3 years ago
@TheJaredWilcurt and I spoke on the Cypress Discord. Essentially, this is because he can't strip v-data*
out, which is generated. The third party solution https://github.com/meinaart/cypress-plugin-snapshots is able to solve his issues.
As he's a library maintainer for a snapshot lib, @TheJaredWilcurt may be interested in contributing to Cypress's core snapshotting solution when time allows
Jest allows you to specify the location of a "snapshot serializer" file. This gives users the power to format the snapshots however they like.
For example, if I wanted to create a serializer that would reverse an html string (simple, contrived example), it would look like this:
The flow for this is:
expect(INPUT).toMatchSnapshot();
INPUT
is passed to the serializer, as is, (number, object, string, whatever)test
function with theINPUT
to see if it is a type of data it wants to serializetest
returnstruthy
, then run the serializerprint
function passing in theINPUT
@cypress/snapshot
then either stores the modified value, or compares against the existing stored value.With this, plugins can can made for specific frameworks (Vue, Angular, React, etc) to improve their snapshots.
PLEASE keep the api the same as what Jest uses, so I don't need to maintain two libraries to do the same thing.
In fact, if you make this work, I'll rename my repo to
snapshot-serializer-vue
since it will work in both Jest and Cypress.