add tests destroy tokens balance and supply check

This commit is contained in:
Ricardo Guilherme Schmidt 2023-09-26 02:41:52 -03:00
parent 22f02cb230
commit bb7bc3a6d7
3 changed files with 38 additions and 4 deletions

View File

@ -6,21 +6,21 @@
| allowance | 0 | 62 | 0 | 808 | 13 |
| approve | 0 | 15018 | 14715 | 31708 | 10 |
| approveAndCall | 0 | 31199 | 0 | 93597 | 3 |
| balanceOf | 0 | 309 | 0 | 2753 | 47 |
| balanceOf | 0 | 297 | 0 | 2753 | 49 |
| balanceOfAt | 0 | 90 | 0 | 2363 | 26 |
| changeController | 0 | 724 | 0 | 3558 | 7 |
| claimTokens | 9537 | 41277 | 57148 | 57148 | 3 |
| controller | 0 | 0 | 0 | 0 | 7 |
| createCloneToken | 0 | 919122 | 919122 | 1838245 | 2 |
| decimals | 0 | 0 | 0 | 0 | 7 |
| destroyTokens | 9001 | 9001 | 9001 | 9001 | 1 |
| destroyTokens | 2308 | 5206 | 4310 | 9001 | 3 |
| enableTransfers | 0 | 0 | 0 | 0 | 3 |
| generateTokens | 0 | 8450 | 0 | 95796 | 34 |
| generateTokens | 0 | 7765 | 0 | 95796 | 37 |
| name | 0 | 0 | 0 | 0 | 7 |
| parentSnapShotBlock | 0 | 0 | 0 | 0 | 8 |
| parentToken | 0 | 0 | 0 | 0 | 8 |
| symbol | 0 | 0 | 0 | 0 | 7 |
| totalSupply | 0 | 273 | 0 | 1911 | 7 |
| totalSupply | 0 | 212 | 0 | 1911 | 9 |
| totalSupplyAt | 0 | 285 | 0 | 1995 | 7 |
| transfer | 526 | 37564 | 49389 | 75187 | 17 |
| transferFrom | 0 | 16836 | 3495 | 66590 | 7 |

View File

@ -15,6 +15,8 @@ CreateCloneTokenTest:testDeployment() (gas: 26550)
CreateCloneTokenTest:testGenerateTokens() (gas: 102067)
DestroyTokensTest:testDeployment() (gas: 26595)
DestroyTokensTest:testDestroyTokens() (gas: 13501)
DestroyTokensTest:testDestroyTokensNotEnoughBalance() (gas: 9666)
DestroyTokensTest:testDestroyTokensNotEnoughSupply() (gas: 7997)
GenerateTokensTest:testDeployment() (gas: 26550)
GenerateTokensTest:testGenerateTokens() (gas: 109506)
GenerateTokensTest:test_RevertWhen_SenderIsNotController() (gas: 14951)

View File

@ -11,6 +11,7 @@ import {
TransfersDisabled,
InvalidDestination,
NotEnoughBalance,
NotEnoughSupply,
NotEnoughAllowance,
AllowanceAlreadySet,
ControllerRejected,
@ -603,6 +604,37 @@ contract DestroyTokensTest is MiniMeTokenTest {
assertEq(minimeToken.balanceOf(accounts[0]), 7, "balance of account should be reduced");
vm.resumeGasMetering();
}
function testDestroyTokensNotEnoughSupply() public {
vm.pauseGasMetering();
// ensure `accounts[0]` has tokens
_generateTokens(accounts[0], 10);
vm.prank(deployer);
vm.resumeGasMetering();
vm.expectRevert(NotEnoughSupply.selector);
minimeToken.destroyTokens(accounts[0], 11);
vm.pauseGasMetering();
assertEq(minimeToken.totalSupply(), 10, "total supply should be correct");
assertEq(minimeToken.balanceOf(accounts[0]), 10, "balance of account should be reduced");
vm.resumeGasMetering();
}
function testDestroyTokensNotEnoughBalance() public {
vm.pauseGasMetering();
// ensure `accounts[0]` has tokens
_generateTokens(accounts[0], 10);
_generateTokens(accounts[1], 10);
vm.expectRevert(NotEnoughBalance.selector);
vm.prank(deployer);
vm.resumeGasMetering();
minimeToken.destroyTokens(accounts[0], 11);
vm.pauseGasMetering();
assertEq(minimeToken.totalSupply(), 20, "total supply should be correct");
assertEq(minimeToken.balanceOf(accounts[0]), 10, "balance of account should be reduced");
vm.resumeGasMetering();
}
}
contract CreateCloneTokenTest is MiniMeTokenTest {