Comments (3)
jest captures the stack on calling toMatchInlineSnapshot and then matches up the ast based on the callsite column and line.
There are some challenges doing this with cypress:
- the call is async. We'd need to monket patch cypress so the stack trace comes from the sync part of the call rather than being called once async dependencies are fetched. This could be worked around I think, maybe a bit like this: cypress-io/cypress#881 (comment)
- the source is transformed. Unfortunately theres no way to get the sourcemapping right now, so we are dependent on this issue being resolved first: cypress-io/cypress#4041
so, I think a workable approach would be to use the test title and the order of the calls to determine the right call to make. This is more limiting, but in practice I can't think of any problems - for instance if you have a forEach around the test and dynamically create the test - this currently works in jest, but it opts out if the same call site is used more than twice - so in practice it only works if the dynamic test name is created only once. The same for abstracted functions - they work but only if called once. So I do not think the limitations are too bad - it would work for me.
from cypress-plugin-snapshots.
Now that cypress-io/cypress#4041 is merged, is it technically possible to implement this?
from cypress-plugin-snapshots.
This would be a long awaited feature for us.
from cypress-plugin-snapshots.
Related Issues (20)
- (bug) cypress-plugin-snapshots errors out in component testing HOT 2
- Is it possible to remove the separator when generating the file name? HOT 1
- (bug) Cypress-image-snapshot makes the cut image
- (feat) Make the command retry on failure
- Can't pass updateSnapshots=true in npm script to update existing snapshots HOT 2
- Functionality of the plugin
- Maintaining this plugin HOT 8
- (bug) Typo in toMatchSnapshot type definition
- (bug) Update `socket.io`
- Update plugin to be compatible with Cypress 10 HOT 10
- attempt number is add to snapshot name(bug)
- Update snapshot button is missing (bug)
- Newcomers - Inactive repository HOT 3
- (bug) crypto.randomBytes is not a function
- (feat) Comparing screenshots from the same test run
- (bug) peerDependency on Cypress 4.x HOT 4
- (bug) Error reported during parallel execution of case;error message:listen EADDRINUSE: address already in use 127.0.0.1:2121
- Please make a new npm release
- Snapshot Compare Broken (bug)
- (feat) pixelmatch threshold control HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cypress-plugin-snapshots.