graphql-engine/console/cypress/README.md
Stefano Magni b2103cda61 console: Refactoring the Mutation Actions-related E2E tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4482
GitOrigin-RevId: bd628911e607ab41399b31f7dd8fe9c361e0f052
2022-06-17 14:07:16 +00:00

58 lines
2.4 KiB
Markdown

# Test
## Useful resources
- [Cypress Dashboard for the Console project](https://dashboard.cypress.io/projects/5yiuic)
## Running all tests to generate coverage
1. Set the `TEST_MODE` field in `cypress.json` to `cli`
2. Run the command `npm run test` from the `console` directory to run all the tests.
## Running tests individually
Tests are modularized into following modules:
- API-Explorer
- Data
- Migration Mode
- Create Table
- Insert Browse
- Modify Table
- Table Relationships
- Table and View Permissions
- Views
To run the tests for the modules individually (say for create table),
- Go to the `cypress.json` and set the `env > TEST_MODE` variable to `ui`.
```json
{
"env": {
"TEST_MODE": "ui"
}
}
```
- Run the command `npm run cy:open` and click on `create-table > test.js`
## Writing Tests
- Read ups
- If this is your first time with cypress, check out this getting started [guide](https://docs.cypress.io/guides/getting-started/writing-your-first-test.html)
- Read cypress [best practices](https://docs.cypress.io/guides/references/best-practices.html)
- File Structure
The top-level directories in [console/cypress](../../console/cypress) are auto-generated by cypress except [helpers](../../console/cypress/helpers). To understand the use of each directory check out [Folder Structure](https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests.html#Folder-Structure)
[helpers](../../console/cypress/helpers) directory is used for sharing reusable functions/constants across tests. Before adding a resubale function in this directory, consider if it will be better as a custom cypress command, if so, then add it to [Support](../../console/cypress/support) directory following this [guide](https://docs.cypress.io/api/cypress-api/custom-commands.html), preferrably to [command.ts](../../console/cypress/support/commands.ts) file.
- Adding a Test
Tests go to [integration](../../console/cypress/integration) directory, where there are folders corresponding to Components in [Services](../../console/src/components/Services) directory (The top-level routes on the console).
Each of these folders contains different test folders, named after the particular feature they are testing. For example [create-table](../../console/cypress/integration/data/create-table) folder tests the functionality of creating a table from the console UI.