diff --git a/tests/LSP7DigitalAsset/LSP7DigitalAsset.behaviour.ts b/tests/LSP7DigitalAsset/LSP7DigitalAsset.behaviour.ts index cba68b26a..da3dc0141 100644 --- a/tests/LSP7DigitalAsset/LSP7DigitalAsset.behaviour.ts +++ b/tests/LSP7DigitalAsset/LSP7DigitalAsset.behaviour.ts @@ -1785,7 +1785,14 @@ export const shouldBehaveLikeLSP7 = (buildContext: () => Promise Promise { + const operator = context.accounts.operator; + const amount = operatorAllowance; + + const operatorsList = await context.lsp7.getOperatorsOf(context.accounts.owner.address); + expect(operatorsList).to.include(operator.address); + + await context.lsp7.connect(operator).burn(context.accounts.owner.address, amount, '0x'); + + const updatedOperatorList = await context.lsp7.getOperatorsOf( + context.accounts.owner.address, + ); + expect(updatedOperatorList.length).to.equal(operatorsList.length - 1); + expect(updatedOperatorList).to.not.include(operator.address); + }); + it('token owner balance should have decreased', async () => { const operator = context.accounts.operator; const amount = operatorAllowance; @@ -1982,6 +2005,20 @@ export const shouldBehaveLikeLSP7 = (buildContext: () => Promise { + const operator = context.accounts.operator; + const amount = operatorAllowance; + + const operatorsList = await context.lsp7.getOperatorsOf(context.accounts.owner.address); + expect(operatorsList).to.include(operator.address); + + await expect( + context.lsp7.connect(operator).burn(context.accounts.owner.address, amount, '0x'), + ) + .to.emit(context.lsp7, 'RevokedOperator') + .withArgs(operator.address, context.accounts.owner.address, '0x'); + }); }); describe('when burning part of its allowance', () => { @@ -2005,6 +2042,18 @@ export const shouldBehaveLikeLSP7 = (buildContext: () => Promise { + const amount = 10; + assert.isBelow(amount, operatorAllowance); + + const operator = context.accounts.operator; + + await context.lsp7.connect(operator).burn(context.accounts.owner.address, amount, '0x'); + + const operatorsList = await context.lsp7.getOperatorsOf(context.accounts.owner.address); + expect(operatorsList).to.include(operator.address); + }); + it('token owner balance should have decreased', async () => { const amount = 10; assert.isBelow(amount, operatorAllowance); @@ -2050,6 +2099,24 @@ export const shouldBehaveLikeLSP7 = (buildContext: () => Promise { + const amount = 10; + assert.isBelow(amount, operatorAllowance); + + const operator = context.accounts.operator; + + await expect( + context.lsp7.connect(operator).burn(context.accounts.owner.address, amount, '0x'), + ) + .to.emit(context.lsp7, 'AuthorizedOperator') + .withArgs( + operator.address, + context.accounts.owner.address, + operatorAllowance - amount, + '0x', + ); + }); }); describe('when burning more than its allowance', () => {