diff --git a/test/unit/TokenController/burnFrom.js b/test/unit/TokenController/burnFrom.js new file mode 100644 index 0000000000..0ee0817a52 --- /dev/null +++ b/test/unit/TokenController/burnFrom.js @@ -0,0 +1,29 @@ +const { expect } = require('chai'); +const { parseEther } = require('ethers/lib/utils'); + +describe('burnFrom', function () { + it('reverts if caller is not an internal contract', async function () { + const { tokenController } = this.contracts; + const [member1] = this.accounts.members; + + const amount = parseEther('10'); + await expect(tokenController.connect(member1).burnFrom(member1.address, amount)).to.be.revertedWith( + 'Caller is not an internal contract', + ); + }); + + it('burns nxm from member', async function () { + const { tokenController, nxm } = this.contracts; + const [internalContract] = this.accounts.internalContracts; + const [member1] = this.accounts.members; + + const initialBalanceMember1 = await nxm.balanceOf(member1.address); + + const amount = parseEther('10'); + await tokenController.connect(internalContract).burnFrom(member1.address, amount); + + const balanceMember1 = await nxm.balanceOf(member1.address); + + expect(balanceMember1).to.equal(initialBalanceMember1.sub(amount)); + }); +}); diff --git a/test/unit/TokenController/index.js b/test/unit/TokenController/index.js index d7bb7fc48c..93cb06342a 100644 --- a/test/unit/TokenController/index.js +++ b/test/unit/TokenController/index.js @@ -23,4 +23,5 @@ describe('TokenController', function () { require('./changeOperator'); require('./operatorTransfer'); require('./mint'); + require('./burnFrom'); });