Commit ca8accbd authored by Will Cory's avatar Will Cory

Remove biggest piece of repitition in optimist tests

parent bf5f9feb
...@@ -22,6 +22,32 @@ contract Optimist_Initializer is Test { ...@@ -22,6 +22,32 @@ contract Optimist_Initializer is Test {
AttestationStation attestationStation; AttestationStation attestationStation;
Optimist optimist; Optimist optimist;
function attestBaseuri(string memory _baseUri) internal {
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData(
address(optimist),
bytes32("optimist.base-uri"),
bytes(_baseUri)
);
vm.prank(alice_admin);
attestationStation.attest(attestationData);
}
function attestAllowlist(address _about) internal {
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: _about,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
}
function _setUp() public { function _setUp() public {
// Give alice and bob and sally some ETH // Give alice and bob and sally some ETH
vm.deal(alice_admin, 1 ether); vm.deal(alice_admin, 1 ether);
...@@ -68,16 +94,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -68,16 +94,7 @@ contract OptimistTest is Optimist_Initializer {
assertEq(optimist.balanceOf(bob), 0); assertEq(optimist.balanceOf(bob), 0);
// whitelist bob // whitelist bob
AttestationStation.AttestationData[] attestAllowlist((bob));
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
uint256 tokenId = uint256(uint160(bob)); uint256 tokenId = uint256(uint160(bob));
vm.expectEmit(true, true, true, true); vm.expectEmit(true, true, true, true);
...@@ -102,17 +119,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -102,17 +119,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Sally should be able to mint a token on behalf of bob * @dev Sally should be able to mint a token on behalf of bob
*/ */
function test_optimist_mint_secondary_minter() external { function test_optimist_mint_secondary_minter() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
bytes memory data = abi.encodeWithSelector( bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector, attestationStation.attestations.selector,
...@@ -148,17 +155,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -148,17 +155,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Bob's tx should revert if he already minted * @dev Bob's tx should revert if he already minted
*/ */
function test_optimist_mint_already_minted() external { function test_optimist_mint_already_minted() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint initial nft with bob // mint initial nft with bob
vm.prank(bob); vm.prank(bob);
...@@ -177,14 +174,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -177,14 +174,7 @@ contract OptimistTest is Optimist_Initializer {
* by the owner of contract alice_admin * by the owner of contract alice_admin
*/ */
function test_optimist_baseURI() external { function test_optimist_baseURI() external {
// set baseURI attestBaseuri(base_uri);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
attestationData[0] = AttestationStation.AttestationData({
about: address(optimist),
key: bytes32("optimist.base-uri"),
val: bytes(base_uri)
});
bytes memory data = abi.encodeWithSelector( bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector, attestationStation.attestations.selector,
...@@ -194,7 +184,6 @@ contract OptimistTest is Optimist_Initializer { ...@@ -194,7 +184,6 @@ contract OptimistTest is Optimist_Initializer {
); );
vm.expectCall(address(attestationStation), data); vm.expectCall(address(attestationStation), data);
vm.prank(alice_admin); vm.prank(alice_admin);
attestationStation.attest(attestationData);
// assert baseURI is set // assert baseURI is set
assertEq(optimist.baseURI(), base_uri); assertEq(optimist.baseURI(), base_uri);
...@@ -205,24 +194,9 @@ contract OptimistTest is Optimist_Initializer { ...@@ -205,24 +194,9 @@ contract OptimistTest is Optimist_Initializer {
* for a minted token * for a minted token
*/ */
function test_optimist_token_uri() external { function test_optimist_token_uri() external {
// whitelist bob attestAllowlist(bob);
// attest baseURI
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](2);
// we are using true but it can be any non empty value // we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({ attestBaseuri(base_uri);
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
// we are using true but it can be any non empty value
attestationData[1] = AttestationStation.AttestationData({
about: address(optimist),
key: bytes32("optimist.base-uri"),
val: bytes(base_uri)
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint an NFT // mint an NFT
vm.prank(bob); vm.prank(bob);
...@@ -241,17 +215,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -241,17 +215,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Should return a boolean of if the address is whitelisted * @dev Should return a boolean of if the address is whitelisted
*/ */
function test_optimist_is_on_allow_list() external { function test_optimist_is_on_allow_list() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
bytes memory data = abi.encodeWithSelector( bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector, attestationStation.attestations.selector,
...@@ -281,18 +245,8 @@ contract OptimistTest is Optimist_Initializer { ...@@ -281,18 +245,8 @@ contract OptimistTest is Optimist_Initializer {
uint256 willTokenId = 1024; uint256 willTokenId = 1024;
address will = address(1024); address will = address(1024);
AttestationStation.AttestationData[] attestAllowlist(will);
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: will,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob
optimist.mint(will); optimist.mint(will);
assertEq(optimist.tokenIdOfAddress(will), willTokenId); assertEq(optimist.tokenIdOfAddress(will), willTokenId);
...@@ -302,17 +256,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -302,17 +256,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should revert if anybody attemps token transfer * @dev It should revert if anybody attemps token transfer
*/ */
function test_optimist_sbt_transfer() external { function test_optimist_sbt_transfer() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob // mint as bob
vm.prank(bob); vm.prank(bob);
...@@ -337,17 +281,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -337,17 +281,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should revert if anybody attemps approve * @dev It should revert if anybody attemps approve
*/ */
function test_optimist_sbt_approve() external { function test_optimist_sbt_approve() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob // mint as bob
vm.prank(bob); vm.prank(bob);
...@@ -365,17 +299,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -365,17 +299,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should be able to burn token * @dev It should be able to burn token
*/ */
function test_optimist_burn() external { function test_optimist_burn() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob // mint as bob
vm.prank(bob); vm.prank(bob);
...@@ -393,17 +317,7 @@ contract OptimistTest is Optimist_Initializer { ...@@ -393,17 +317,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev setApprovalForAll should revert as sbt * @dev setApprovalForAll should revert as sbt
*/ */
function test_optimist_set_approval_for_all() external { function test_optimist_set_approval_for_all() external {
// whitelist bob attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob // mint as bob
vm.prank(bob); vm.prank(bob);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment