// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; import "forge-std/Test.sol"; import "../src/Unaboomer.sol"; contract UnaboomerTest is Test { Unaboomer public boomr; address alice = address(1); address bob = address(2); address[] admins = new address[](2); function setUp() public { boomr = new Unaboomer(); admins[0] = address(1); admins[1] = address(2); boomr.updateAdmins(admins); } function testUpdatingAdmins() public { // confirm admin on 1 and 2 assertEq(boomr.adminWallets(boomr.deployer()), true); assertEq(boomr.adminWallets(address(1)), true); assertEq(boomr.adminWallets(address(2)), true); assertEq(boomr.adminWallets(address(3)), false); hoax(address(1)); boomr.removeAdmin(address(2)); assertEq(boomr.adminWallets(address(2)), false); hoax(address(2)); vm.expectRevert(); boomr.withdraw(); } function testWithdraws() public { // confirm payouts divvy equally vm.deal(address(boomr), 11.5 ether); vm.prank(address(1)); boomr.withdraw(); assertEq(address(1).balance, 5.75 ether); assertEq(address(2).balance, 5.75 ether); } function testMint() public { vm.startPrank(alice); boomr.mint(5); assertEq(boomr.totalSupply(), 5); assertEq(boomr.tokenDead(1), false); } }