75fcca4cd9
* fix comment of default number of peers * export default number of peers from base protocol sdk * rename to light_push, move class to separate file * move waitForRemotePeer to sdk package * add todo to move waitForGossipSubPeerInMesh into @waku/relay * clean up waitForRemotePeer, split metadata await from event and optimise, decouple from protocol implementations * simplify and rename ILightPush interface * use only connected peers in light push based on connections instead of peer renewal mechanism * improve readability of result processing in light push * fix check & update tests * address tests, add new test cases, fix racing condition in StreamManager * use libp2p.getPeers * feat: confirm metadata and protocols needed in waitForRemotePeer * rely on passed protocols and fallback to mounted * add I prefix to Waku interface * implement waku.connect method * add docs to IWaku interface * remove export and usage of waitForRemotePeer * move wait for remote peer related to Realy out of @waku/sdk * change tests to use new API * fix linting * update size limit * rename .connect to .waitForPeer * export waitForRemotePeer and mark as deprecated * feat: add mocha tests to @waku/sdk and cover waitForRemotePeer (#2163) * feat: add mocha tests to @waku/sdk and cover waitForRemotePeer * add waitForRemote UTs * remove junk * feat: expose peerId and protocols from WakuNode (#2166) * chore: expose peerId and protocols from WakuNode * remove unused method * move to private method * rename to waitForPeers * up test |
||
---|---|---|
.. | ||
src | ||
tests | ||
.eslintrc.cjs | ||
.mocha.reporters.json | ||
.mocharc.cjs | ||
README.md | ||
package.json | ||
tsconfig.dev.json | ||
tsconfig.json |
README.md
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 innwaku.ts
andpackages/tests/package.json
. The tests can be run against a different image by setting the environment variableWAKUNODE_IMAGE
to the desired image. -
The tests can be run against a
go-waku
node by setting the environment variableWAKUNODE_IMAGE
to the desiredgo-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:WAKUNODE_IMAGE=explicit-image-name npm run test:node
Or against the default docker image by running:
npm run test:node
-
-
You can also run the tests against a local
nwaku
orgo-waku
node by setting the environment variableWAKUNODE_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
orgo-waku
, build the image first manually. You can build the image by running the following command:docker build path-to-dockerfile -t image-name
Then, you can run the tests by running the following command:
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.