* electron: upgrade to 1.8.2, node 8.2.1, chromium 59 * server: update snapshots for node * server: try to debug timeouts for mochawesome * bump zunder - node-sass 3.13.1 does not work with Node 8, since we’re upgrading the project to node 8.2.1, we needed node-sass 4.5.3+. This node-sass dep was coming from gulp-sass dep in zunder which has since been updated * server: figured out that fixture scaffolding can cause timeouts * bump zunder - get fix so that asserts are not prefixed with / * server: use our own heroku example app * use cypress/browsers:chrome64 docker image on Circle with Node 8 * update root folder name * add hash to root cache * disable permissions test, because cannot run as root * server: only disable test in CI * test new binary against other projects * all: rename cypress-monorepo -> cypress * scripts: use latest docker container * server: don't skip as this messes up hooks which cause failures downstream * driver: bump timeout for zonejs * server: make tests pass for node 8.2.1 and 8.4.0
Desktop GUI
The Desktop GUI is the react application that is rendered by Electron. This acts as the visual user interface you see when running: cypress open.
The Desktop GUI has the following responsibilities:
- Allow users to login through GitHub.
- Allow users to add projects to be tested in Cypress.
- Display existing projects and allow the removal of projects.
- Initialize the server to run on a specific project.
- Allow users to choose a specific browser to run tests within.
- Display the resolved configuration of a running project.
- Display the list of specs of a running project.
- Initialize the run of a specific spec file or all tests chosen by the user.
- Notify users of updates to Cypress and initialize update process.
- Set up projects to be recorded.
Installing
The Desktop GUI's dependencies can be installed with:
cd packages/desktop-gui
npm install
Developing
NOTE: Currently, if you want to work on the code around logging in, viewing runs, or setting up new projects to record, this requires connecting to a locally running API server.
Our API server is only accessible to Cypress employees at the moment. If you want to work with the code, we recommend working within the Cypress tests for the Desktop-Gui. There are lots of tests mocking our API server around logging in, seeing runs, and setting up projects.
Watching
This watches and compiles all changes as you make them.
- Runs
*.jsand*.jsxthrough babel and bundles with browserify intodist - Compiles
*.scssfiles intodist
## from 'cypress/packages/desktop-gui' dir
npm run watch
One Time Build
For development
## from 'cypress/packages/desktop-gui' dir
npm run build
For production
## from 'cypress/packages/desktop-gui' dir
npm run build-prod
Testing
In Cypress
This project is tested with Cypress itself. It acts exactly like any other Cypress project.
## from 'cypress/packages/desktop-gui' dir
npm run cypress:open
From here, you can drag in the desktop-gui dir from your local fork of cypress. Click into the project and run the tests~
Running
You can also run all of the Desktop GUI's tests locally. We don't really recommend this because it takes a long time, and we have this process optimized by load balancing the tests across multiple workers in CI.
It's usually easier to run the tests in the GUI, commit, and then see if anything broke elsewhere.
## run all the tests
## from 'cypress/packages/desktop-gui' dir
npm run cypress:run