Make Burn TokenOwnerOnly & Add test suites

This commit is contained in:
EmperorOrokuSaki 2022-12-08 02:03:31 +03:30
parent 47c0b8d1bb
commit 8437fe4e6e
2 changed files with 45 additions and 3 deletions

View File

@ -229,7 +229,7 @@ contract FleekERC721 is ERC721, FleekAccessControl {
function burn(
uint256 tokenId
) public virtual requireTokenController(tokenId) {
) public virtual requireTokenOwner(tokenId) {
_requireMinted(tokenId);
require(
ownerOf(tokenId) == msg.sender,

View File

@ -31,6 +31,7 @@ contract FleekTest is Test {
);
assertEq(mint, 0);
assertEq(fleekContract.ownerOf(mint), DEPLOYER);
}
function testMintingMintedToken() public {
@ -297,6 +298,28 @@ function testFailChangingAllPossibleFieldsOnAnotherUsersTokenWithoutAccess() pub
fleekContract.burn(mint);
}
function testFailTokenControllerAttemptsToBurnToken() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
'https://fleek.xyz',
'fleek_xyz',
'afff3f6',
'https://github.com/fleekxyz/contracts'
);
assertEq(mint, 0);
fleekContract.addTokenController(mint, 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84);
vm.prank(address(0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84));
fleekContract.burn(mint);
}
function testSetTokenName() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
@ -550,7 +573,7 @@ function testFailChangingAllPossibleFieldsOnAnotherUsersTokenWithoutAccess() pub
fleekContract.addTokenController(mint, 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84);
}
function testFailAddTokenControllerTwice() public {
function testAddTokenControllerTwice() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
@ -624,7 +647,7 @@ function testFailChangingAllPossibleFieldsOnAnotherUsersTokenWithoutAccess() pub
fleekContract.removeTokenController(mint, 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84);
}
function testFailRemoveUnknownTokenController() public {
function testRemoveUnknownTokenController() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
@ -664,4 +687,23 @@ function testFailChangingAllPossibleFieldsOnAnotherUsersTokenWithoutAccess() pub
fleekContract.removeTokenController(mint, DEPLOYER);
}
function testBalanceOfDeployerAfterAndBeforeMinting() public {
assertEq(fleekContract.balanceOf(DEPLOYER), 0);
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
'https://fleek.xyz',
'fleek_xyz',
'afff3f6',
'https://github.com/fleekxyz/contracts'
);
assertEq(mint, 0);
assertEq(fleekContract.balanceOf(DEPLOYER), 1);
}
}