js-waku/packages/tests
danisharora099 2bc3735e4d
feat: add support for autosharded pubsub topics
tests: use a generator for sharded pubsub topics
set pubsub topic in encoder/decoder based on sharding type
add function for grouping content topics by pubsub topic
add autosharding config to create options
add autoshard rpc endpoints to nwaku and use in tests
set autoshard pubsub topics in all protocols
fix rebase with static sharding
removes unused function
remove console logs
remove autosharding from ShardInfo, add to EncoderOptions
fix enr and encoder/decoder options
test that same application/version hashes to same shard index
update comment on shard field
fix spelling of autosharding
fix content topic protocol in tests
add sharding type alias and function to determine topic in encoders/decoders
move DefaultPubsubTopic from core to interfaces
2023-12-21 10:03:22 -08:00
..
src feat: add support for autosharded pubsub topics 2023-12-21 10:03:22 -08:00
tests feat: add support for autosharded pubsub topics 2023-12-21 10:03:22 -08:00
.eslintrc.cjs chore: upgrade libp2p and related deps (#1482) 2023-08-16 20:18:13 +05:30
.mocha.reporters.json chore: allure test reporting (#1668) 2023-10-23 17:53:56 +03:00
.mocharc.cjs chore: allure test reporting (#1668) 2023-10-23 17:53:56 +03:00
README.md chore: disable paralles runs locally (#1662) 2023-10-13 17:32:28 +03:00
package.json chore(deps)(deps-dev): bump @types/tail from 2.2.1 to 2.2.3 (#1760) 2023-12-19 20:47:33 +01:00
tsconfig.dev.json chore: merge tsconfig 2022-12-02 15:54:30 +11:00
tsconfig.json feat: use nwaku/go-waku docker images instead of building binaries (#1259) 2023-04-17 10:29:36 +05:30

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 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:

      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 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:

      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.