d769800086
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4510 GitOrigin-RevId: 2fff40627278e6e8eb48bc4d466ce499e7669ca7 |
||
---|---|---|
.. | ||
fixtures | ||
helpers | ||
integration | ||
plugins | ||
support | ||
.eslintrc | ||
global.d.ts | ||
README.md | ||
tsconfig.json |
Test
Running all tests to generate coverage
- Set the
TEST_MODE
field incypress.json
tocli
- Run the command
npm run test
from theconsole
directory to run all the tests.
You can also run the complete tests from the cypress electron app:
- Set the
TEST_MODE
field incypress.json
tocli
- Run
npm run cypress
from theconsole
directory. - Click on
test_complete.js
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 theenv > TEST_MODE
variable toui
.
{
"env": {
"TEST_MODE": "ui"
}
}
- Run the command
npm run cypress
and click oncreate-table > test.js
Writing Tests
-
Read ups
-
If this is your first time with cypress, check out this getting started guide
-
Read cypress best practices
-
-
File Structure
The top-level directories in console/cypress are auto-generated by cypress except helpers. To understand the use of each directory check out Folder Structure
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 directory following this guide, preferrably to command.ts file.
-
Adding a Test
Tests go to integration directory, where there are folders corresponding to Components in 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 folder tests the functionality of creating a table from the console UI.