mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-02-12 16:18:48 +00:00
48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# End-to-end testing
|
|
|
|
Baserow comes with end-to-end test suite in the `e2e-tests` folder. The test suite
|
|
uses [Playwright](https://playwright.dev/) testing tool to run UI tests against a
|
|
running Baserow instance using one or multiple browsers.
|
|
|
|
## When and what to e2e test
|
|
|
|
As of February 2023 the e2e test suite is brand new, we recommend you add any e2e
|
|
tests you think make sense. Some ideas on what to test:
|
|
1. Complicated multiservice UX flows like duplicating a database
|
|
2. Complicated frontend code that is hard to test with unit tests
|
|
3. The serialization boundary between the frontend client and backend api
|
|
4. Critical features that often accidentally break or features that often break in
|
|
other browsers, and we don't notice.
|
|
|
|
## Installation and running locally
|
|
|
|
```bash
|
|
# Startup your local env which will be tested
|
|
$ ./dev.sh
|
|
$ cd e2e-tests
|
|
# The below script installs the e2e test package, waits for your dev env to be healthy
|
|
# and then runs the tests.
|
|
$ ./run-e2e-tests-locally.sh
|
|
# After which you can manually re-run the tests with various manual commands:
|
|
yarn test # headless
|
|
yarn test-headed
|
|
```
|
|
|
|
`yarn test` and `yarn test-headed` will run all tests in Chrome.
|
|
|
|
## Configuration
|
|
|
|
Besides Playwright configuration defined in `e2e-tests/playwright.config.ts` you can set
|
|
environment variables to target a Baserow instance on any URL
|
|
with `PUBLIC_WEB_FRONTEND_URL` and `PUBLIC_BACKEND_URL`. You can also
|
|
use `e2e-tests/.env` file to do so, see `e2e-tests/.env-example`.
|
|
|
|
## E2E in CI
|
|
|
|
To run E2E tests in CI to should:
|
|
|
|
1. Go to your MR in Gitlab
|
|
2. Click Pipelines
|
|
3. Wait for the `build-backend-image` and `build-web-frontend-image` steps to complete
|
|
4. Now you can manually start the `e2e-tests` job which will run e2e tests in both
|
|
chrome and firefox.
|