non-fungible-apps/contracts/test/foundry/FleekERC721/Mint.t.sol

107 lines
2.7 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "./TestBase.sol";
contract Test_FleekERC721_Mint is Test_FleekERC721_Base {
function setUp() public {
baseSetUp();
}
function test_mint() public {
uint256 mint = mintDefault(deployer);
assertEq(mint, 0);
assertEq(CuT.ownerOf(mint), deployer);
}
function test_mintingMintedToken() public {
uint256 firstMint = mintDefault(deployer);
uint256 secondMint = mintDefault(deployer);
assertEq(firstMint, 0);
assertEq(secondMint, 1);
}
function test_mintTwoTokensForTwoAddresses() public {
uint256 firstMint = mintDefault(deployer);
transferENS("fleek.eth", deployer);
uint256 secondMint = CuT.mint(
address(12),
"Different App Name",
"This is a different description for another app.",
"https://fleek.xyz",
"fleek.eth",
"94e8ba38568aea4fb277a37a4c472d94a6ce880a",
"https://github.com/a-different/repository",
TestConstants.LOGO_1,
0x654321,
false,
deployer
);
assertEq(firstMint, 0);
assertEq(secondMint, 1);
}
function test_mintWithAutoApprovalAPsOn() public {
transferENS("fleek.eth", deployer);
uint256 mint = CuT.mint(
address(12),
"Different App Name",
"This is a different description for another app.",
"https://fleek.xyz",
"fleek.eth",
"94e8ba38568aea4fb277a37a4c472d94a6ce880a",
"https://github.com/a-different/repository",
TestConstants.LOGO_1,
0x654321,
true,
deployer
);
assertEq(mint, 0);
}
function test_balanceOfDeployerAfterAndBeforeMinting() public {
assertEq(CuT.balanceOf(deployer), 0);
mintDefault(deployer);
assertEq(CuT.balanceOf(deployer), 1);
}
function testFuzz_mint(
address to,
string memory appName,
string memory description,
string memory externalURL,
string memory ens,
string memory commitHash,
string memory gitRepository,
string memory logo,
uint24 color,
bool autoApprovalAp
) public {
vm.assume(to != address(0));
transferENS(ens, deployer);
uint256 tokenId = CuT.mint(
to,
appName,
description,
externalURL,
ens,
commitHash,
gitRepository,
logo,
color,
autoApprovalAp,
deployer
);
assertEq(tokenId, 0);
assertEq(CuT.ownerOf(tokenId), to);
}
}