* maintain pings in a hashmap * convert `KeepAliveManager` into a singleton * chore: fix an unrelated cyclic dependency error * update `selectPeerForProtocol` to return peer with the lowest latency * use the new KeepAliveManager API * use the new API for `selectPeerForProtocol` * add tests * use PeerData to hold the ping instead of a new variable * improve tests for readability * move back KeepAliveManager from singleton * reenable all tests * minor improvements * improve error handling * convert .then() syntax to async/await
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
nwakunode with the image name specified innwaku.tsandpackages/tests/package.json. The tests can be run against a different image by setting the environment variableWAKUNODE_IMAGEto the desired image. -
The tests can be run against a
go-wakunode by setting the environment variableWAKUNODE_IMAGEto the desiredgo-wakuimage.-
Whatever
WAKUNODE_IMAGEis 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:nodeOr against the default docker image by running:
npm run test:node
-
-
You can also run the tests against a local
nwakuorgo-wakunode by setting the environment variableWAKUNODE_IMAGEto 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
nwakuorgo-waku, build the image first manually. You can build the image by running the following command:docker build path-to-dockerfile -t image-nameThen, you can run the tests by running the following command:
WAKUNODE_IMAGE=image-name npm run test:node
-