Skip to content
/ Qtest Public

Javascript Antelope Smart Contract Testing Library

License

Notifications You must be signed in to change notification settings

GenerEOS/Qtest

Repository files navigation

Welcome to Qtest

Qtest is an open-source Javascript-based Antelope smart-contract testing framework, created by GenerEOS with funding from the EOS Network Foundation.

Qtest gives you the ability to dockerize a Leap node. This allows a developer to host it on any system that supports Docker. Using Qtest, 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. Qtest already can be used to streamline testing for multiple Antelope based chains including EOS, WAX, and TELOS, with the ability to add additional chain support easily.

Noteworthy Features

  • Ability to run tests in parallel
  • Supports the snapshot for EOS/WAX/TLOS with lastest system contracts out of the box
  • Supports testing on ARM/AMD architectures
  • Ability to insert/modify/erase data for each table
  • Update the chain time to fast-forward the chain and allow testing future states

Quick start

Installation

Refer to an example project

npm install --save-dev qtest-js

Jest

Install jest

npm install --save-dev jest@^28.1.3

Config 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 test

Usage

const { Chain } = require("qtest-js");
const { expectAction } = require("qtest-js");

Api and JsonRpc from eosjs are available through the Chain class

Qtest API

Classes

Public

Internal

Functions

Public

Support

For issues not covered in the documentation, please jump into our channel and we will do our best to help you out GenerEOS channel on Telegram.

Licence

This code is provided as is, under MIT Licence.

Todo

  • Support ARM binaries for leap version