mirror of https://github.com/waku-org/js-waku.git
50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# Description
|
|
|
|
This package contains tests for the `js-waku` library.
|
|
|
|
# Pre-requisites
|
|
|
|
Some of the tests from this package require a running `nwaku` or `go-waku` node. These nodes are setup to be run in a docker container.
|
|
Therefore, you need to have `docker` installed on your machine to run the tests.
|
|
|
|
# Running interop tests
|
|
|
|
- The tests by default run against an `nwaku` node with the image name specified in `nwaku.ts` and `packages/tests/package.json`. The tests can be run against a different image by setting the environment variable `WAKUNODE_IMAGE` to the desired image.
|
|
|
|
- The tests can be run against a `go-waku` node by setting the environment variable `WAKUNODE_IMAGE` to the desired `go-waku` image.
|
|
|
|
- Whatever `WAKUNODE_IMAGE` is set to, the tests will run against that image. If the image is not available locally, the tests will pull the image from the docker hub.
|
|
You can run the tests by running the following command:
|
|
|
|
```bash
|
|
WAKUNODE_IMAGE=explicit-image-name npm run test:node
|
|
```
|
|
|
|
Or against the default docker image by running:
|
|
|
|
```bash
|
|
npm run test:node
|
|
```
|
|
|
|
- You can also run the tests against a local `nwaku` or `go-waku` node by setting the environment variable `WAKUNODE_IMAGE` to the name of the image. The tests will then run against the local image.
|
|
|
|
- For example, to run the tests against a local checkout of `nwaku` or `go-waku`, build the image first manually. You can build the image by running the following command:
|
|
|
|
```bash
|
|
docker build path-to-dockerfile -t image-name
|
|
```
|
|
|
|
Then, you can run the tests by running the following command:
|
|
|
|
```bash
|
|
WAKUNODE_IMAGE=image-name npm run test:node
|
|
```
|
|
|
|
- Locally, tests are executed serially, allowing the use of **.only** for focused testing. If you wish to run all tests locally and expedite the process, you can enable parallel execution in the Mocha configuration.
|
|
|
|
# Running tests in the CI
|
|
|
|
- Tests are being run on standard Ubuntu GitHub Actions instances.
|
|
- To speed up execution, we run tests in parallel. After numerous attempts, we determined that using 6 threads strikes the best balance between execution speed and test reliability. Using more than this doesn't significantly decrease execution time and might even slow it down.
|
|
- To address occasional test flakiness, primarily due to Docker containers starting and stopping for each test and the concurrent execution of tests, we utilize the Mocha retry mechanism.
|