0.2.0 • Published 7 years ago
@drizzle-utils/test-chain v0.2.0
@drizzle-utils/test-chain
Utils for spawning a test blockchain to run automated tests on.
Usage
Getting started
Install via NPM:
npm install @drizzle-utils/test-chainUsage example (taken from @drizzle-utils/new-block-stream/__tests__/node_env.js):
/**
* @jest-environment node
*/
const Web3 = require("web3");
const initTestChain = require("@drizzle-utils/test-chain");
describe("new-block-stream tests in node environment", () => {
let provider;
let web3;
let accounts;
let contractInstance;
beforeAll(async () => {
// Assign results from initTestChain to be accessed by all tests
({ provider, web3, accounts, contractInstance } = await initTestChain({
contract: {
dirname: __dirname, // contracts folder is a sibling to this .test.js file
filename: "SimpleStorage.sol",
contractName: "SimpleStorage",
},
ganacheOptions: {
port: "1234",
},
}));
});
afterAll(async () => {
// Make sure to close the provider after all tests are done
provider.close();
});
test("fromPolling can track blocks", async done => {
// Do your other test stuff up here...
// Call your contract instance
await contractInstance.methods.set(0).send({ from: accounts[0] });
await contractInstance.methods.set(5).send({ from: accounts[0] });
});
});API
initTestChain
Intializes the test chain with an optional contract deployed to it.
Parameters
- options -
Object(optional)- contract -
Object(optional)- dirname -
String: The directory to search for acontractsfolder. - filename -
String: The Solidity filename. - contractName -
String: The contract name.
- dirname -
- ganacheOptions -
Object: Ganache options object
- contract -
Returns
Object
- provider: A web3 provider.
- web3: A web3 instance.
- accounts -
String[]: An array of address strings. - contractInstance: (if
contractwas specified inoptionsparameter) A web3 contract instance. - contractArtifact: (if
contractwas specified inoptionsparameter) Thejsoncontract artifact.
0.2.0
7 years ago
0.1.7-alpha.0
7 years ago