Run API Tests
March 10, 2026 ยท View on GitHub
Running the API tests is the best way to develop and test Haveno end-to-end. HavenoClient.ts provides the client interface to Haveno's daemon.
You first need to start a local Haveno network which can be done manually or using docker.
Start local Haveno network manually
This workflow is useful for local development of haveno and haveno-ts
- Run a local Haveno test network and then shut down the arbitrator, user1, and user2 or run them as daemons, e.g.
make user1-daemon-local. You may omit the arbitrator registration steps since it's done automatically in the tests. - Clone this project to the same parent directory as the haveno project:
git clone https://github.com/haveno-dex/haveno-ts - Install
envoyproxy, for examplebrew install envoy. - In a new terminal, start envoy with the config in haveno-ts/config/envoy.local.yaml:
envoy -c config/envoy.local.yaml - In a new terminal, start the funding wallet. This wallet will be funded automatically in order to fund the tests.
For example:cd ~/git/haveno && make funding-wallet-local.
Start local Haveno network with docker
Alternatively use this wokflow to develop haveno-ts or run tests with dockerized setup:
Start a local Haveno network with docker:
cd ~/git/haveno-ts/dockersudo docker-compose up. This will start docker and initialize the network.
Docker Tips
- Stop:
sudo docker-compose stop- Rebuild:
sudo docker-compose build- Stop and delete contains:
sudo docker-compose stop
Run client tests
- Install protobuf compiler v29.3 for your system.
- Download
protoc-gen-jsandprotoc-gen-grpc-webplugins and make executable as shown here. cd haveno-tsnpm installnpm run test -- --baseCurrencyNetwork=XMR_LOCALto run all tests ornpm run test -- --baseCurrencyNetwork=XMR_LOCAL -t "Can get the version"to run tests by name.
Notes for Windows
- Download and install Git Bash for Windows.
- Install and run envoy in WSL2 which provides a Linux environment. Alternatively, download envoy v1.28.0 from historical archive and add to PATH.
- Download and install Node.js. Ensure that PATH uses your Node.js install location first (e.g. "C:\Program Files\nodejs" is before "C:\msys64\mingw64\bin").
- From Git Bash,
npm install --global protoc-gen-js(use this instead of normal installation). - Run envoy in Git Bash:
envoy -c config/envoy.local.yaml. - Run monerod1-local, monerod2-local, funding-wallet-local, and seednode-local in MINGW64 (recommended).
- Run tests from Git Bash, e.g.:
npm run test -- --baseCurrencyNetwork=XMR_LOCAL -t "version"