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 {
AttestationStation attestationStation;
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 {
// Give alice and bob and sally some ETH
vm.deal(alice_admin, 1 ether);
......@@ -68,16 +94,7 @@ contract OptimistTest is Optimist_Initializer {
assertEq(optimist.balanceOf(bob), 0);
// whitelist 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);
attestAllowlist((bob));
uint256 tokenId = uint256(uint160(bob));
vm.expectEmit(true, true, true, true);
......@@ -102,17 +119,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Sally should be able to mint a token on behalf of bob
*/
function test_optimist_mint_secondary_minter() external {
// whitelist 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);
attestAllowlist(bob);
bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector,
......@@ -148,17 +155,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Bob's tx should revert if he already minted
*/
function test_optimist_mint_already_minted() external {
// whitelist 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);
attestAllowlist(bob);
// mint initial nft with bob
vm.prank(bob);
......@@ -177,14 +174,7 @@ contract OptimistTest is Optimist_Initializer {
* by the owner of contract alice_admin
*/
function test_optimist_baseURI() external {
// set baseURI
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
attestationData[0] = AttestationStation.AttestationData({
about: address(optimist),
key: bytes32("optimist.base-uri"),
val: bytes(base_uri)
});
attestBaseuri(base_uri);
bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector,
......@@ -194,7 +184,6 @@ contract OptimistTest is Optimist_Initializer {
);
vm.expectCall(address(attestationStation), data);
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// assert baseURI is set
assertEq(optimist.baseURI(), base_uri);
......@@ -205,24 +194,9 @@ contract OptimistTest is Optimist_Initializer {
* for a minted token
*/
function test_optimist_token_uri() external {
// whitelist bob
// attest baseURI
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](2);
attestAllowlist(bob);
// 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")
});
// 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);
attestBaseuri(base_uri);
// mint an NFT
vm.prank(bob);
......@@ -241,17 +215,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Should return a boolean of if the address is whitelisted
*/
function test_optimist_is_on_allow_list() external {
// whitelist 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);
attestAllowlist(bob);
bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector,
......@@ -281,18 +245,8 @@ contract OptimistTest is Optimist_Initializer {
uint256 willTokenId = 1024;
address will = address(1024);
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: will,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
attestAllowlist(will);
// mint as bob
optimist.mint(will);
assertEq(optimist.tokenIdOfAddress(will), willTokenId);
......@@ -302,17 +256,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should revert if anybody attemps token transfer
*/
function test_optimist_sbt_transfer() external {
// whitelist 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);
attestAllowlist(bob);
// mint as bob
vm.prank(bob);
......@@ -337,17 +281,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should revert if anybody attemps approve
*/
function test_optimist_sbt_approve() external {
// whitelist 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);
attestAllowlist(bob);
// mint as bob
vm.prank(bob);
......@@ -365,17 +299,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should be able to burn token
*/
function test_optimist_burn() external {
// whitelist 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);
attestAllowlist(bob);
// mint as bob
vm.prank(bob);
......@@ -393,17 +317,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev setApprovalForAll should revert as sbt
*/
function test_optimist_set_approval_for_all() external {
// whitelist 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);
attestAllowlist(bob);
// mint as 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