BurnableToken.test.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const EVMRevert = require('./helpers/EVMRevert.js');
  2. const BurnableTokenMock = artifacts.require('mocks/BurnableTokenMock.sol');
  3. const BigNumber = web3.BigNumber;
  4. require('chai')
  5. .use(require('chai-as-promised'))
  6. .use(require('chai-bignumber')(BigNumber))
  7. .should();
  8. const expect = require('chai').expect;
  9. contract('BurnableToken', function (accounts) {
  10. let token;
  11. let expectedTokenSupply = new BigNumber(999);
  12. beforeEach(async function () {
  13. token = await BurnableTokenMock.new(accounts[0], 1000);
  14. });
  15. it('owner should be able to burn tokens', async function () {
  16. const { logs } = await token.burn(1, { from: accounts[0] });
  17. const balance = await token.balanceOf(accounts[0]);
  18. balance.should.be.bignumber.equal(expectedTokenSupply);
  19. const totalSupply = await token.totalSupply();
  20. totalSupply.should.be.bignumber.equal(expectedTokenSupply);
  21. const event = logs.find(e => e.event === 'Burn');
  22. expect(event).to.exist;
  23. });
  24. it('cannot burn more tokens than your balance', async function () {
  25. await token.burn(2000, { from: accounts[0] })
  26. .should.be.rejectedWith(EVMRevert);
  27. });
  28. });