Eoslime
Search…
test
You should have running nodeos
eoslime test
Will prepare the mocha testing framework for you and provide you some testing utils.
The testing utils (eoslime.tests) are only available when your are using eoslime
const assert = require('assert');
const TOKEN_WASM_PATH = './contracts/example/eosio.token.wasm';
const TOKEN_ABI_PATH = './contracts/example/eosio.token.abi';
describe("EOSIO Token", function (eoslime) {
// Increase mocha(testing framework) time, otherwise tests fails
this.timeout(15000);
let tokenContract;
let tokensIssuer;
let tokensHolder;
const TOTAL_SUPPLY = "1000000000.0000 SYS";
const HOLDER_SUPPLY = "100.0000 SYS";
before(async () => {
let accounts = await eoslime.Account.createRandoms(2);
tokensIssuer = accounts[0];
tokensHolder = accounts[1];
});
beforeEach(async () => {
tokenContract = await eoslime.Contract.deploy(TOKEN_WASM_PATH, TOKEN_ABI_PATH);
});
it("Should create a new token", async () => {
await tokenContract.actions.create(tokensIssuer.name, TOTAL_SUPPLY);
let tokenInitialization = await tokenContract.provider.eos.getCurrencyStats(tokenContract.name, "SYS");
assert.equal(tokenInitialization.SYS.max_supply, TOTAL_SUPPLY, "Incorrect tokens supply");
assert.equal(tokenInitialization.SYS.issuer, tokensIssuer.name, "Incorrect tokens issuer");
});
it("Should issue tokens", async () => {
await tokenContract.actions.create(tokensIssuer.name, TOTAL_SUPPLY);
await tokenContract.actions.issue(tokensHolder.name, HOLDER_SUPPLY, "memo", { from: tokensIssuer });
let holderBalance = await tokensHolder.getBalance("SYS", tokenContract.name);
assert.equal(holderBalance[0], HOLDER_SUPPLY, "Incorrect holder balance");
});
it("Should throw if tokens quantity is negative", async () => {
await tokenContract.actions.create(tokensIssuer.name, TOTAL_SUPPLY);
const INVALID_ISSUING_AMOUNT = "-100.0000 SYS";
await eoslime.tests.expectAssert(tokenContract.actions.issue(tokensHolder.name, INVALID_ISSUING_AMOUNT, "memo", { from: tokensIssuer }));
let holderBalance = await tokensHolder.getBalance("SYS", tokenContract.name);
assert.equal(holderBalance.length, 0, "Incorrect holder balance");
});
});
Last modified 2yr ago
Copy link