add test suites
This commit is contained in:
parent
ef8baad617
commit
50052860f7
|
|
@ -5,39 +5,268 @@ import "../../contracts/FleekERC721.sol";
|
|||
|
||||
contract ContractBTest is Test {
|
||||
FleekERC721 fleekContract;
|
||||
uint256 testNumber;
|
||||
|
||||
function setUp() public {
|
||||
fleekContract = new FleekERC721('Test Contract', 'FLKAPS');
|
||||
}
|
||||
|
||||
function testName() public {
|
||||
assertEq(fleekContract.name(), 'Test Contract'));
|
||||
function testCollectionOwner() public {
|
||||
assertEq(fleekContract.COLLECTION_OWNER_ROLE, keccak256('0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84'));
|
||||
}
|
||||
|
||||
function testSymbol() public {
|
||||
assertEq(fleekContract.symbol(), 'FLKAPS'));
|
||||
assertEq(fleekContract.symbol(), 'FLKAPS');
|
||||
}
|
||||
|
||||
|
||||
function testName() public {
|
||||
assertEq(fleekContract.name(), 'Test Contract');
|
||||
}
|
||||
|
||||
function testSymbol() public {
|
||||
assertEq(fleekContract.symbol(), 'FLKAPS');
|
||||
}
|
||||
|
||||
function testMint() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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);
|
||||
}
|
||||
|
||||
function testMintingMintedToken() public {
|
||||
uint256 first_mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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'
|
||||
);
|
||||
|
||||
uint256 second_mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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(first_mint, 0);
|
||||
assertEq(second_mint, 1);
|
||||
}
|
||||
|
||||
function testMintingMoreThanOneTokenForTheSameAddress() public {
|
||||
uint256 first_mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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(first_mint, 0);
|
||||
|
||||
uint256 second_mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'Foundry Test App 2',
|
||||
'This is a test application submitted by foundry tests [2].',
|
||||
'https://fleek.xyz',
|
||||
'https://fleek.xyz',
|
||||
'fleek_xyz',
|
||||
'afff3f6',
|
||||
'https://github.com/fleekxyz/contracts'
|
||||
);
|
||||
|
||||
assertEq(second_mint, 1);
|
||||
}
|
||||
|
||||
function testMintingTwoTokensForTwoAddresses() public {
|
||||
uint256 first_mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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(first_mint, 0);
|
||||
|
||||
uint256 second_mint = fleekContract.mint(
|
||||
address(0),
|
||||
'Foundry Test App 2',
|
||||
'This is a test application submitted by foundry tests[2].',
|
||||
'https://fleek.xyz',
|
||||
'https://fleek.xyz',
|
||||
'fleek_xyz',
|
||||
'afff3f6',
|
||||
'https://github.com/fleekxyz/contracts'
|
||||
);
|
||||
|
||||
assertEq(second_mint, 1);
|
||||
}
|
||||
|
||||
function testTokenURI() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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);
|
||||
|
||||
string memory tokenURI = fleekContract.tokenURI(mint);
|
||||
|
||||
bytes memory dataURI = abi.encodePacked(
|
||||
'{',
|
||||
'"name":"Foundry Test App",',
|
||||
'"description":"This is a test application submitted by foundry tests.",',
|
||||
'"owner":"0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84",',
|
||||
'"external_url":"https://fleek.xyz",',
|
||||
'"image":"https://fleek.xyz",',
|
||||
'"attributes": [',
|
||||
'{"trait_type": "ENS", "value":"fleek_xyz"},',
|
||||
'{"trait_type": "Commit Hash", "value":"afff3f6"},',
|
||||
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/contracts"},',
|
||||
'{"trait_type": "Version", "value":"0"}',
|
||||
']',
|
||||
'}'
|
||||
);
|
||||
|
||||
assertEq(tokenURI, string(abi.encodePacked("data:application/json;base64,", Base64.encode((dataURI)))));
|
||||
}
|
||||
|
||||
function testFailCallingTokenURIOnNonExistantToken() public {
|
||||
bytes memory dataURI = abi.encodePacked(
|
||||
'{',
|
||||
'"name":"Foundry Test App",',
|
||||
'"description":"This is a test application submitted by foundry tests.",',
|
||||
'"owner":"0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84",',
|
||||
'"external_url":"https://fleek.xyz",',
|
||||
'"image":"https://fleek.xyz",',
|
||||
'"attributes": [',
|
||||
'{"trait_type": "ENS", "value":"fleek_xyz"},',
|
||||
'{"trait_type": "Commit Hash", "value":"afff3f6"},',
|
||||
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/contracts"},',
|
||||
'{"trait_type": "Version", "value":"0"}',
|
||||
']',
|
||||
'}'
|
||||
);
|
||||
|
||||
assertEq(fleekContract.tokenURI(0), string(abi.encodePacked("data:application/json;base64,", Base64.encode((dataURI)))));
|
||||
}
|
||||
|
||||
function testBurn() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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.burn(mint);
|
||||
}
|
||||
|
||||
function testFailBurningNonExistantToken() public {
|
||||
fleekContract.burn(0);
|
||||
}
|
||||
|
||||
function testSetTokenName() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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.setTokenName(mint, 'NEW TOKEN NAME!');
|
||||
}
|
||||
|
||||
function testSetTokenDescription() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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.setTokenDescription(mint, 'NEW TOKEN NAME!');
|
||||
}
|
||||
|
||||
function testSetTokenImage() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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.setTokenImage(mint, 'https://ethereum.org');
|
||||
}
|
||||
|
||||
function testSetTokenExternalURL() public {
|
||||
uint256 mint = fleekContract.mint(
|
||||
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
|
||||
'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.setTokenExternalURL(mint, 'https://ethereum.org');
|
||||
}
|
||||
|
||||
function testSetTokenBuild() public {
|
||||
|
|
|
|||
Loading…
Reference in New Issue