karimsa / cybuddy Goto Github PK
View Code? Open in Web Editor NEWCreate Cypress tests visually.
License: MIT License
Create Cypress tests visually.
License: MIT License
Now that we have a CLI, saving files can be done automatically into the cypress folder.
Opening files should also be made easier, similar to how the functionality of templates works.
It flashes to 'run', but then the next step continues anyways.
Should be able to change the URL from the UI
For HireFast, I make a POST request to the backend to trigger a env reset and let cypress reset the storage + cookies on the frontend.
Some setups might directly modify the DB or possibly run commands to perform resets.
How do we make it simple to override that behaviour? Perhaps with forcing the reset action to always be a custom action rather than builtin?
If we make it mandatory that action implementations cannot access variables outside their function scope, we can simplify action implementations so that they only need to provide an implementation instead of a generation + implementation. For example:
const resetAction = {
type: 'reset',
run() {
cy.clearLocalStorage()
cy.clearCookies()
cy.reload()
},
}
This can then be executed in a "VM" in the browser:
const resetVM = new Function('cy', getFunctionBody(resetAction.run))
resetVM(polyfills.cy)
The function body passed to the VM is also the generated form that can be added to the cypress file.
This might be confusing because it looks like the function pointer will be called on execution, but it actually moves into a VM that runs in a different scope. However, at least errors caused by this mistake will be visible in CyBuddy and not just cypress.
When used with cypress open
and the Chrome browser, the web security seems to prevent things from working. For now, it's been disabled by cybuddy when you start it. There's a doc page on how Cypress deals with this issue:
https://docs.cypress.io/guides/guides/web-security.html#Set-chromeWebSecurity-to-false
We already do proxying, but probably need to look at the other strategies too.
One test that tries all the actions should be good enough
We should add a CLI to run CyBuddy. Starting it should be as simple as: cybuddy https://localhost:1234
.
This enables us to support different things:
Right now, only the fixed actions that already exist in CyBuddy are the only ones you can use. I was dealing with this in HireFast by just adding actions I needed manually. However, it would be nice to pass an array of new actions and for CyBuddy to just support those actions.
On initial start, the hooks kick in and try to attempt the last step of the test. Instead, it should probably run the whole test or do nothing. Preferably nothing in the event of refreshes.
Possible solutions:
I'm just testing it manually using either the example project in this repo or using a special branch of HireFast.
Test methodology:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.