Automation Testing
CHEFS uses CYPRESS for test automation. Cypress is a UI testing tool, which is used for functional testing of web applications. It uses JavaScript framework and can test anything that runs in browser.
Prerequisites
Node.js needs to be installed on the machine before cypress installation
Set up
Make sure you have installed Node.js and go to project path /common-hosted-form-service/tests/functional
and run the following commands to install cypress
npm init
npm install cypress --save-dev
Cypress Tests
Cypress tests are stored inside the folder /common-hosted-form-service/tests/functional/cypress/e2e
For headless cypress runs, go to project root /common-hosted-form-service/tests/functional
and run the following command
npm run test
To open the cypress interface and the tests from there , go to project root /common-hosted-form-service/tests/functional
and run the following command and can see cypress test scripts inside e2e folder
npx cypress open
Environment variables
All the env variables are stored in cypress.config.js file in the project path /common-hosted-form-service/tests/functional
Cypress workflow
Cypress workflow file cypress-ci.yaml will be in the project path /common-hosted-form-service/.github/workflows
Workflow runs find under Actions in the repository
Chefs uses test IDIR and password as GitHub secrets to run cypress tests. The secrets are stored in the following manner. Secret variable KEYCLOAKUSERNAME is test IDIR username and KEYCLOAKPASSWORD is test IDIR password.
When a dev wants to run the cypress tests after the new code pushes to PR environment, Then dev needs to enter PR number in order to run it on the PR environment. .
If a dev wants to run the new code in the PR environment, then they needs to enter PR number in the following format pr-1114( for PR number 1114) in the textbox as in the screenshot above. After clicking on “Run workflow” button, cypress tests starts running and we can check the cypress result for any failed tests. If we don't enter any PR number and hit “Run workflow” button then cypress tests will run on default dev environment(/app)
Cypress report for the successful run will be like this
Cypress report with the failed tests will be look like below with screenshots available to download and view where the test fails