@@ -0,0 +1,43 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
import {Test} from "forge-std/Test.sol";
|
||||
import {BasicNft} from "src/BasicNft.sol";
|
||||
import {DeployBasicNft} from "script/DeployBasicNft.s.sol";
|
||||
|
||||
contract BasicNftTest is Test {
|
||||
DeployBasicNft public deployer;
|
||||
BasicNft public basicNft;
|
||||
address public USER = makeAddr("USER");
|
||||
string public constant ipfsHoeleeImage =
|
||||
"ipfs://QmW1aRxvAngY22wrxyrUYSriekkHQMcXA3D1mjHgBc5ge6?filename=MrHoelee.png";
|
||||
|
||||
function setUp() public {
|
||||
deployer = new DeployBasicNft();
|
||||
basicNft = deployer.run();
|
||||
}
|
||||
|
||||
function testNameIsCorrect() public view {
|
||||
string memory expectedName = "Hoelee";
|
||||
string memory actualName = basicNft.name();
|
||||
// string is array of bytes can't directly compare
|
||||
// we can compare: bool, uint256, address, bytes32
|
||||
|
||||
// Solution: compare the hash of array of bytes
|
||||
assert(
|
||||
keccak256(abi.encodePacked(expectedName)) ==
|
||||
keccak256(abi.encodePacked(actualName))
|
||||
);
|
||||
}
|
||||
|
||||
function testCanMintAndHaveABalance() public {
|
||||
vm.prank(USER);
|
||||
basicNft.mintNft(ipfsHoeleeImage);
|
||||
assert(basicNft.balanceOf(USER) == 1);
|
||||
assert(
|
||||
keccak256(abi.encodePacked(basicNft.tokenURI(0))) ==
|
||||
keccak256(abi.encodePacked(ipfsHoeleeImage))
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
import {Test, console} from "lib/forge-std/src/Test.sol";
|
||||
import {MoodNft} from "src/MoodNft.sol";
|
||||
import {DeployMoodNft} from "script/DeployMoodNft.s.sol";
|
||||
|
||||
contract MoodNftIntegrationTest is Test {
|
||||
MoodNft public moodNft;
|
||||
address public USER = makeAddr("HOELEE");
|
||||
string public constant HAPPY_SVG_URI =
|
||||
"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgd2lkdGg9IjQwMCIgIGhlaWdodD0iNDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxjaXJjbGUgY3g9IjEwMCIgY3k9IjEwMCIgZmlsbD0ieWVsbG93IiByPSI3OCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIzIi8+CiAgPGcgY2xhc3M9ImV5ZXMiPgogICAgPGNpcmNsZSBjeD0iNzAiIGN5PSI4MiIgcj0iMTIiLz4KICAgIDxjaXJjbGUgY3g9IjEyNyIgY3k9IjgyIiByPSIxNC41Ii8+CiAgPC9nPgogIDxwYXRoIGQ9Im0xMzcgMTE2LjUzYy42OSAyNi4xNy02NC4xMSA0Mi04MS41Mi0uNzMiIHN0eWxlPSJmaWxsOm5vbmU7IHN0cm9rZTogYmxhY2s7IHN0cm9rZS13aWR0aDogMzsiLz4KPC9zdmc+";
|
||||
string public constant SAD_SVG_URI =
|
||||
"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGZpbGw9IiMzMzMiIGQ9Ik01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6Ii8+CiAgPHBhdGggZmlsbD0iI0U2RTZFNiIgZD0iTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0zNzYgMjcyaC00OC4xYy00LjIgMC03LjgtMy4yLTguMS03LjRDNjA0IDYzNi4xIDU2Mi41IDU5NyA1MTIgNTk3cy05Mi4xIDM5LjEtOTUuOCA4OC42Yy0uMyA0LjItMy45IDcuNC04LjEgNy40SDM2MGE4IDggMCAwIDEtOC04LjRjNC40LTg0LjMgNzQuNS0xNTEuNiAxNjAtMTUxLjZzMTU1LjYgNjcuMyAxNjAgMTUxLjZhOCA4IDAgMCAxLTggOC40em0yNC0yMjRhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eiIvPgogIDxwYXRoIGZpbGw9IiMzMzMiIGQ9Ik0yODggNDIxYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMjI0IDExMmMtODUuNSAwLTE1NS42IDY3LjMtMTYwIDE1MS42YTggOCAwIDAgMCA4IDguNGg0OC4xYzQuMiAwIDcuOC0zLjIgOC4xLTcuNCAzLjctNDkuNSA0NS4zLTg4LjYgOTUuOC04OC42czkyIDM5LjEgOTUuOCA4OC42Yy4zIDQuMiAzLjkgNy40IDguMSA3LjRINjY0YTggOCAwIDAgMCA4LTguNEM2NjcuNiA2MDAuMyA1OTcuNSA1MzMgNTEyIDUzM3ptMTI4LTExMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6Ii8+Cjwvc3ZnPg==";
|
||||
DeployMoodNft deployer;
|
||||
|
||||
function setUp() public {
|
||||
deployer = new DeployMoodNft();
|
||||
moodNft = deployer.run();
|
||||
}
|
||||
|
||||
function testViewTokenURI() public {
|
||||
vm.prank(USER);
|
||||
moodNft.mintNft();
|
||||
console.log(moodNft.tokenURI(0));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user