You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
const { BN, constants, expectEvent } = require('@openzeppelin/test-helpers');
|
|
const { ZERO_ADDRESS } = constants;
|
|
|
|
const { expect } = require('chai');
|
|
|
|
const ERC20PresetFixedSupply = artifacts.require('ERC20PresetFixedSupply');
|
|
|
|
contract('ERC20PresetFixedSupply', function (accounts) {
|
|
const [deployer, owner] = accounts;
|
|
|
|
const name = 'PresetFixedSupply';
|
|
const symbol = 'PFS';
|
|
|
|
const initialSupply = new BN('50000');
|
|
const amount = new BN('10000');
|
|
|
|
before(async function () {
|
|
this.token = await ERC20PresetFixedSupply.new(name, symbol, initialSupply, owner, { from: deployer });
|
|
});
|
|
|
|
it('deployer has the balance equal to initial supply', async function () {
|
|
expect(await this.token.balanceOf(owner)).to.be.bignumber.equal(initialSupply);
|
|
});
|
|
|
|
it('total supply is equal to initial supply', async function () {
|
|
expect(await this.token.totalSupply()).to.be.bignumber.equal(initialSupply);
|
|
});
|
|
|
|
describe('burning', function () {
|
|
it('holders can burn their tokens', async function () {
|
|
const remainingBalance = initialSupply.sub(amount);
|
|
const receipt = await this.token.burn(amount, { from: owner });
|
|
expectEvent(receipt, 'Transfer', { from: owner, to: ZERO_ADDRESS, value: amount });
|
|
expect(await this.token.balanceOf(owner)).to.be.bignumber.equal(remainingBalance);
|
|
});
|
|
|
|
it('decrements totalSupply', async function () {
|
|
const expectedSupply = initialSupply.sub(amount);
|
|
expect(await this.token.totalSupply()).to.be.bignumber.equal(expectedSupply);
|
|
});
|
|
});
|
|
});
|