From badac523109966ade1fd609d978aa58e308cab74 Mon Sep 17 00:00:00 2001 From: Arr00 <13561405+arr00@users.noreply.github.com> Date: Tue, 26 Dec 2023 15:31:45 -0500 Subject: [PATCH] full coverage --- test/crowdfund/AtomicManualParty.t.sol | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/test/crowdfund/AtomicManualParty.t.sol b/test/crowdfund/AtomicManualParty.t.sol index 8377983f..efd59f86 100644 --- a/test/crowdfund/AtomicManualParty.t.sol +++ b/test/crowdfund/AtomicManualParty.t.sol @@ -394,4 +394,63 @@ contract AtomicManualPartyTest is SetupPartyHelper { assertEq(atomicParty.getVotingPowerAt(john, uint40(block.timestamp)), 100); assertEq(atomicParty.getVotingPowerAt(danny, uint40(block.timestamp)), 80); } + + function test_createAtomicManualPartyWithMetadata_additionalAuthorities() public { + Party.PartyOptions memory opts; + opts.name = "PARTY"; + opts.symbol = "PR-T"; + opts.governance.voteDuration = 99; + opts.governance.executionDelay = _EXECUTION_DELAY; + opts.governance.passThresholdBps = 1000; + opts.governance.totalVotingPower = 180; + + address[] memory partyMembers = new address[](2); + uint96[] memory partyMemberVotingPower = new uint96[](2); + + partyMembers[0] = john; + partyMembers[1] = danny; + + partyMemberVotingPower[0] = 100; + partyMemberVotingPower[1] = 80; + + address[] memory authorities = new address[](2); + authorities[0] = _randomAddress(); + authorities[1] = _randomAddress(); + + // Not checking address of the party + vm.expectEmit(false, true, true, true); + emit PartyCreated( + Party(payable(0)), + opts, + preciousTokens, + preciousTokenIds, + address(atomicManualParty) + ); + vm.expectEmit(false, true, true, true); + emit ProviderSet(address(0), IMetadataProvider(address(0))); + Party atomicParty = atomicManualParty.createPartyWithMetadata( + Party(payable(address(Proxy(payable(address(party))).IMPL()))), + opts, + preciousTokens, + preciousTokenIds, + 0, + MetadataProvider(address(0)), + "", + partyMembers, + partyMemberVotingPower, + authorities + ); + + // Ensure `atomicManualParty` is not an authority after creation + assertFalse(party.isAuthority(address(atomicManualParty))); + // Ensure authorities passed are authorities + assertTrue(atomicParty.isAuthority(authorities[0])); + assertTrue(atomicParty.isAuthority(authorities[1])); + + assertEq(atomicParty.getGovernanceValues().totalVotingPower, 180); + + // Ensure holders match input + assertEq(atomicParty.getVotingPowerAt(john, uint40(block.timestamp)), 100); + assertEq(atomicParty.getVotingPowerAt(danny, uint40(block.timestamp)), 80); + } }