You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
'use strict'
|
|
|
|
const EVMThrow = require('./helpers/EVMThrow.js')
|
|
const BurnableTokenMock = artifacts.require("./helpers/BurnableTokenMock.sol")
|
|
const BigNumber = web3.BigNumber
|
|
|
|
require('chai')
|
|
.use(require('chai-as-promised'))
|
|
.use(require('chai-bignumber')(BigNumber))
|
|
.should()
|
|
|
|
const expect = require('chai').expect
|
|
|
|
contract('BurnableToken', function (accounts) {
|
|
let token
|
|
let expectedTokenSupply = new BigNumber(999)
|
|
|
|
beforeEach(async function () {
|
|
token = await BurnableTokenMock.new(accounts[0], 1000)
|
|
})
|
|
|
|
it('owner should be able to burn tokens', async function () {
|
|
const { logs } = await token.burn(1, { from: accounts[0] })
|
|
|
|
const balance = await token.balanceOf(accounts[0])
|
|
balance.should.be.bignumber.equal(expectedTokenSupply)
|
|
|
|
const totalSupply = await token.totalSupply()
|
|
totalSupply.should.be.bignumber.equal(expectedTokenSupply)
|
|
|
|
const event = logs.find(e => e.event === 'Burn')
|
|
expect(event).to.exist
|
|
})
|
|
|
|
it('cannot burn more tokens than your balance', async function () {
|
|
await token.burn(2000, { from: accounts[0] })
|
|
.should.be.rejectedWith(EVMThrow)
|
|
})
|
|
})
|
|
|