@anvoio/anvo-test
v0.1.1
Published
Anvo Network smart contract testing framework
Downloads
121
Maintainers
Readme
Welcome to anvo-test
anvo-test is an open-source Javascript-based smart-contract testing framework for Anvo Core blockchains.
anvo-test gives you the ability to dockerize an Anvo Core node. This allows a developer to host it on any system that supports Docker. Using anvo-test, developers can simplify testing of smart contracts and automate things like table seeding, account creation, and other initialisation tasks that are required before running complex test scenarios.
The framework supports multiple chain configurations — ANVO is the first chain configured, and additional chains that adopt Anvo Core can be added easily.
Noteworthy Features
- Ability to run tests in parallel
- Supports ARM64 and AMD64 architectures (Ubuntu 24.04 LTS)
- Ability to insert/modify/erase data for each table
- Update the chain time to fast-forward the chain and allow testing future states
- Multi-chain extensible architecture
- Published to npm and GHCR
Quick start
Installation
Refer to an example project
npm install --save-dev @anvoio/anvo-testJest
Install jest
npm install --save-dev jest@^28.1.3Config jest: Create jest.config.js and add the following:
module.exports = {
// transform: { "^.+\\.(ts|tsx)$": "ts-jest" },
testEnvironment: "node",
testTimeout: 120 * 1e3,
};Docker
To install docker please refer here
Run
Update test command in package.json
"test": "jest"Run
npm run testUsage
const { Chain } = require("@anvoio/anvo-test");
const { expectAction } = require("@anvoio/anvo-test");Api and JsonRpc from eosjs are available through the Chain class
// Setup an ANVO test chain
const chain = await Chain.setupChain("ANVO");
// Run your tests...
// Clean up
await chain.clear();anvo-test API
Classes
Public
Internal
Functions
Public
Adding New Chain Configurations
To add support for a new chain:
- Create a deploy script:
docker/scripts/deploy_system_contract_{chain}.sh - Add contract artifacts:
docker/contracts/{chain}/ - Register the chain in
src/chain.ts(validChainNames,getChainTokenDecimal,getSystemAccountPrefix)
Licence
This code is provided as is, under MIT Licence.
Attribution
anvo-test is derived from Qtest, originally created by GenerEOS with funding from the EOS Network Foundation. See NOTICE for details.
