Cypress was chosen because it is fast to setup, debug, and maintain. I used a shoestring page-object implementation to keep things a little DRY and readable.
In future iterations I'd improve this repo by doing one or more the following:
- Integrate with CI/CD tooling
- Caputre Reference numbers for debugging for use bug reports
- More comprehensive coverage of screen elements and additional behaviors
- Support cross-browser test execution
- Merge test code into repo of the application under test for simpler collaboration and CI/CD logistics between QAs and Devs.
Searching for and selecting a bank is very flaky. A new url occurs aftering clicking on the search field causing the results to go away. I tried all manner of implicit and explicit waits and neither solves it completely. My recommendation would be to determine what's causing the page to re-render and fixing it. There is a screenshot for context: screenshots/payByBank.spec.js/Happy Path -- creates payment successfully (failed).png
To run the Cypress tests locally (on macOS or Linux), you can use the following commands:
- Prerequisites:
Node.js
andDocker
- Clone the repo
- Run
npm i
in your terminal
npm run cypress:open
npm run cypress:run
npm run cypress:docker