Skip to content

Commit

Permalink
test: move modifiers into common file
Browse files Browse the repository at this point in the history
  • Loading branch information
andreivladbrg committed Oct 25, 2024
1 parent f5c973c commit 722b98e
Show file tree
Hide file tree
Showing 18 changed files with 143 additions and 148 deletions.
2 changes: 1 addition & 1 deletion test/periphery/fork/merkle-campaign/MerkleInstant.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ abstract contract MerkleInstant_Fork_Test is Fork_Test {
resetPrank({ msgSender: users.admin });

vm.expectEmit({ emitter: address(merkleFactory) });
emit WithdrawSablierFees({
emit ISablierMerkleFactory.WithdrawSablierFees({
admin: users.admin,
merkleBase: vars.merkleInstant,
to: users.admin,
Expand Down
2 changes: 1 addition & 1 deletion test/periphery/fork/merkle-campaign/MerkleLL.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ abstract contract MerkleLL_Fork_Test is Fork_Test {
resetPrank({ msgSender: users.admin });

vm.expectEmit({ emitter: address(merkleFactory) });
emit WithdrawSablierFees({
emit ISablierMerkleFactory.WithdrawSablierFees({
admin: users.admin,
merkleBase: vars.merkleLL,
to: users.admin,
Expand Down
2 changes: 1 addition & 1 deletion test/periphery/fork/merkle-campaign/MerkleLT.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ abstract contract MerkleLT_Fork_Test is Fork_Test {
resetPrank({ msgSender: users.admin });

vm.expectEmit({ emitter: address(merkleFactory) });
emit WithdrawSablierFees({
emit ISablierMerkleFactory.WithdrawSablierFees({
admin: users.admin,
merkleBase: vars.merkleLT,
to: users.admin,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ contract CreateMerkleInstant_Integration_Test is MerkleCampaign_Integration_Test
});
}

modifier whenNameNotTooLong() {
_;
}

/// @dev This test works because a default MerkleInstant contract is deployed in {Integration_Test.setUp}
function test_RevertGiven_CampaignAlreadyExists() external whenNameNotTooLong {
MerkleBase.ConstructorParams memory baseParams = defaults.baseParams();
Expand All @@ -48,10 +44,6 @@ contract CreateMerkleInstant_Integration_Test is MerkleCampaign_Integration_Test
});
}

modifier givenCampaignNotExists() {
_;
}

function test_GivenCustomFeeSet(
address campaignOwner,
uint40 expiration,
Expand Down Expand Up @@ -117,7 +109,7 @@ contract CreateMerkleInstant_Integration_Test is MerkleCampaign_Integration_Test

// It should emit a {CreateMerkleInstant} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit CreateMerkleInstant({
emit ISablierMerkleFactory.CreateMerkleInstant({
merkleInstant: ISablierMerkleInstant(expectedMerkleInstant),
baseParams: baseParams,
aggregateAmount: defaults.AGGREGATE_AMOUNT(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@ contract CreateMerkleLL_Integration_Test is MerkleCampaign_Integration_Test {
});
}

modifier whenNameNotTooLong() {
_;
}

/// @dev This test works because a default MerkleLL contract is deployed in {Integration_Test.setUp}
function test_RevertGiven_CampaignAlreadyExists() external whenNameNotTooLong {
MerkleBase.ConstructorParams memory baseParams = defaults.baseParams();
Expand All @@ -62,10 +58,6 @@ contract CreateMerkleLL_Integration_Test is MerkleCampaign_Integration_Test {
});
}

modifier givenCampaignNotExists() {
_;
}

function test_GivenCustomFeeSet(
address campaignOwner,
uint40 expiration,
Expand Down Expand Up @@ -133,7 +125,7 @@ contract CreateMerkleLL_Integration_Test is MerkleCampaign_Integration_Test {

// It should emit a {CreateMerkleInstant} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit CreateMerkleLL({
emit ISablierMerkleFactory.CreateMerkleLL({
merkleLL: ISablierMerkleLL(expectedLL),
baseParams: baseParams,
lockupLinear: lockupLinear,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,6 @@ contract CreateMerkleLT_Integration_Test is MerkleCampaign_Integration_Test {
);
}

modifier whenNameNotTooLong() {
_;
}

/// @dev This test works because a default MerkleLT contract is deployed in {Integration_Test.setUp}
function test_RevertGiven_CampaignAlreadyExists() external whenNameNotTooLong {
MerkleBase.ConstructorParams memory baseParams = defaults.baseParams();
Expand All @@ -66,10 +62,6 @@ contract CreateMerkleLT_Integration_Test is MerkleCampaign_Integration_Test {
);
}

modifier givenCampaignNotExists() {
_;
}

function test_GivenCustomFeeSet(
address campaignOwner,
uint40 expiration,
Expand All @@ -95,7 +87,7 @@ contract CreateMerkleLT_Integration_Test is MerkleCampaign_Integration_Test {

// It should emit a {CreateMerkleLT} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit CreateMerkleLT({
emit ISablierMerkleFactory.CreateMerkleLT({
merkleLT: ISablierMerkleLT(expectedLT),
baseParams: baseParams,
lockupTranched: lockupTranched,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,6 @@ contract IsPercentagesSum100_Integration_Test is MerkleCampaign_Integration_Test
merkleFactory.isPercentagesSum100(tranches);
}

modifier whenPercentagesSumNotOverflow() {
_;
}

modifier whenPercentagesSumNot100Pct() {
_;
}

function test_WhenPercentagesSumLessThan100Pct()
external
view
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ pragma solidity >=0.8.22 <0.9.0;

import { Errors as CoreErrors } from "src/core/libraries/Errors.sol";

import { ISablierMerkleFactory } from "src/periphery/interfaces/ISablierMerkleFactory.sol";
import { MerkleFactory } from "src/periphery/types/DataTypes.sol";

import { MerkleCampaign_Integration_Shared_Test } from "../../shared/MerkleCampaign.t.sol";
Expand All @@ -14,10 +15,10 @@ contract ResetSablierFeeByUser_Integration_Test is MerkleCampaign_Integration_Sh
merkleFactory.resetSablierFeeByUser({ campaignCreator: users.campaignOwner });
}

function test_WhenNotEnabled() external whenCallerAdmin {
function test_WhenNotEnabled() external whenCallerAdmin(users.admin) {
// It should emit a {ResetSablierFee} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit ResetSablierFee({ admin: users.admin, campaignCreator: users.campaignOwner });
emit ISablierMerkleFactory.ResetSablierFee({ admin: users.admin, campaignCreator: users.campaignOwner });

// Reset the Sablier fee.
merkleFactory.resetSablierFeeByUser({ campaignCreator: users.campaignOwner });
Expand All @@ -31,7 +32,7 @@ contract ResetSablierFeeByUser_Integration_Test is MerkleCampaign_Integration_Sh
assertEq(sablierFee.fee, 0, "fee");
}

function test_WhenEnabled() external whenCallerAdmin {
function test_WhenEnabled() external whenCallerAdmin(users.admin) {
// Enable the Sablier fee.
merkleFactory.setSablierFeeByUser({ campaignCreator: users.campaignOwner, fee: 1 ether });

Expand All @@ -43,7 +44,7 @@ contract ResetSablierFeeByUser_Integration_Test is MerkleCampaign_Integration_Sh

// It should emit a {ResetSablierFee} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit ResetSablierFee({ admin: users.admin, campaignCreator: users.campaignOwner });
emit ISablierMerkleFactory.ResetSablierFee({ admin: users.admin, campaignCreator: users.campaignOwner });

// Reset the Sablier fee.
merkleFactory.resetSablierFeeByUser({ campaignCreator: users.campaignOwner });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ pragma solidity >=0.8.22 <0.9.0;

import { Errors as CoreErrors } from "src/core/libraries/Errors.sol";

import { ISablierMerkleFactory } from "src/periphery/interfaces/ISablierMerkleFactory.sol";

import { MerkleCampaign_Integration_Shared_Test } from "../../shared/MerkleCampaign.t.sol";

contract SetDefaultSablierFee_Integration_Test is MerkleCampaign_Integration_Shared_Test {
Expand All @@ -18,7 +20,10 @@ contract SetDefaultSablierFee_Integration_Test is MerkleCampaign_Integration_Sha

// It should emit a {SetDefaultSablierFee} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit SetDefaultSablierFee({ admin: users.admin, sablierFee: defaults.DEFAULT_SABLIER_FEE() });
emit ISablierMerkleFactory.SetDefaultSablierFee({
admin: users.admin,
defaultSablierFee: defaults.DEFAULT_SABLIER_FEE()
});

merkleFactory.setDefaultSablierFee({ defaultFee: defaults.DEFAULT_SABLIER_FEE() });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ pragma solidity >=0.8.22 <0.9.0;

import { Errors as CoreErrors } from "src/core/libraries/Errors.sol";

import { ISablierMerkleFactory } from "src/periphery/interfaces/ISablierMerkleFactory.sol";
import { MerkleFactory } from "src/periphery/types/DataTypes.sol";

import { MerkleCampaign_Integration_Shared_Test } from "../../shared/MerkleCampaign.t.sol";
Expand All @@ -14,10 +15,14 @@ contract SetSablierFeeByUser_Integration_Test is MerkleCampaign_Integration_Shar
merkleFactory.setSablierFeeByUser({ campaignCreator: users.campaignOwner, fee: 0 });
}

function test_WhenNotEnabled() external whenCallerAdmin {
function test_WhenNotEnabled() external whenCallerAdmin(users.admin) {
// It should emit a {SetSablierFee} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit SetSablierFeeForUser({ admin: users.admin, campaignCreator: users.campaignOwner, sablierFee: 0 });
emit ISablierMerkleFactory.SetSablierFeeForUser({
admin: users.admin,
campaignCreator: users.campaignOwner,
sablierFee: 0
});

// Set the Sablier fee.
merkleFactory.setSablierFeeByUser({ campaignCreator: users.campaignOwner, fee: 0 });
Expand All @@ -31,7 +36,7 @@ contract SetSablierFeeByUser_Integration_Test is MerkleCampaign_Integration_Shar
assertEq(sablierFee.fee, 0, "fee");
}

function test_WhenEnabled() external whenCallerAdmin {
function test_WhenEnabled() external whenCallerAdmin(users.admin) {
// Enable the Sablier fee.
merkleFactory.setSablierFeeByUser({ campaignCreator: users.campaignOwner, fee: 0.001 ether });
// Check that its enabled.
Expand All @@ -41,7 +46,11 @@ contract SetSablierFeeByUser_Integration_Test is MerkleCampaign_Integration_Shar

// It should emit a {SetSablierFee} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit SetSablierFeeForUser({ admin: users.admin, campaignCreator: users.campaignOwner, sablierFee: 1 ether });
emit ISablierMerkleFactory.SetSablierFeeForUser({
admin: users.admin,
campaignCreator: users.campaignOwner,
sablierFee: 1 ether
});

// Now set it to another fee.
merkleFactory.setSablierFeeByUser({ campaignCreator: users.campaignOwner, fee: 1 ether });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
pragma solidity >=0.8.22 <0.9.0;

import { Errors as CoreErrors } from "src/core/libraries/Errors.sol";

import { ISablierMerkleBase } from "src/periphery/interfaces/ISablierMerkleBase.sol";
import { ISablierMerkleFactory } from "src/periphery/interfaces/ISablierMerkleFactory.sol";
import { Errors } from "src/periphery/libraries/Errors.sol";

import { MerkleCampaign_Integration_Shared_Test } from "../../shared/MerkleCampaign.t.sol";
Expand All @@ -26,30 +28,30 @@ contract WithdrawFees_Integration_Test is MerkleCampaign_Integration_Shared_Test
merkleFactory.withdrawFees(users.eve, merkleBase);
}

function test_RevertWhen_WithdrawalAddressZero() external whenCallerAdmin {
function test_RevertWhen_WithdrawalAddressZero() external whenCallerAdmin(users.admin) {
vm.expectRevert(abi.encodeWithSelector(Errors.SablierMerkleFactory_WithdrawToZeroAddress.selector));
merkleFactory.withdrawFees(payable(address(0)), merkleBase);
}

modifier whenWithdrawalAddressNotZero() {
_;
}

function test_RevertWhen_ProvidedMerkleLockupNotValid() external whenCallerAdmin whenWithdrawalAddressNotZero {
function test_RevertWhen_ProvidedMerkleLockupNotValid()
external
whenCallerAdmin(users.admin)
whenWithdrawalAddressNotZero
{
vm.expectRevert();
merkleFactory.withdrawFees(users.eve, ISablierMerkleBase(users.eve));
}

modifier whenProvidedMerkleLockupValid() {
_;
}

function test_WhenProvidedAddressNotContract() external whenCallerAdmin whenProvidedMerkleLockupValid {
function test_WhenProvidedAddressNotContract()
external
whenCallerAdmin(users.admin)
whenProvidedMerkleLockupValid
{
uint256 previousToBalance = users.eve.balance;

// It should emit {WithdrawSablierFees} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit WithdrawSablierFees({
emit ISablierMerkleFactory.WithdrawSablierFees({
admin: users.admin,
merkleBase: merkleBase,
to: users.eve,
Expand All @@ -64,13 +66,9 @@ contract WithdrawFees_Integration_Test is MerkleCampaign_Integration_Shared_Test
assertEq(users.eve.balance, previousToBalance + defaults.DEFAULT_SABLIER_FEE(), "eth balance");
}

modifier whenProvidedAddressContract() {
_;
}

function test_RevertWhen_ProvidedAddressNotImplementReceiveEth()
external
whenCallerAdmin
whenCallerAdmin(users.admin)
whenProvidedMerkleLockupValid
whenProvidedAddressContract
{
Expand All @@ -85,15 +83,15 @@ contract WithdrawFees_Integration_Test is MerkleCampaign_Integration_Shared_Test

function test_WhenProvidedAddressImplementReceiveEth()
external
whenCallerAdmin
whenCallerAdmin(users.admin)
whenProvidedMerkleLockupValid
whenProvidedAddressContract
{
address payable receiveEth = payable(address(contractWithReceiveEth));

// It should emit {WithdrawSablierFees} event.
vm.expectEmit({ emitter: address(merkleFactory) });
emit WithdrawSablierFees({
emit ISablierMerkleFactory.WithdrawSablierFees({
admin: users.admin,
merkleBase: merkleBase,
to: receiveEth,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@ contract Claim_MerkleLL_Integration_Test is Claim_Integration_Test, MerkleLL_Int
schedule = defaults.schedule();
}

modifier whenScheduledStartTimeZero() {
_;
}

function test_WhenScheduledCliffDurationZero() external whenMerkleProofValid whenScheduledStartTimeZero {
schedule.cliffDuration = 0;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@ contract Claim_MerkleLT_Integration_Test is Claim_Integration_Test, MerkleLT_Int
super.setUp();
}

modifier whenTotalPercentageNot100() {
_;
}

function test_RevertWhen_TotalPercentageLessThan100() external whenMerkleProofValid whenTotalPercentageNot100 {
uint256 sablierFee = defaults.DEFAULT_SABLIER_FEE();

Expand Down Expand Up @@ -93,10 +89,6 @@ contract Claim_MerkleLT_Integration_Test is Claim_Integration_Test, MerkleLT_Int
});
}

modifier whenTotalPercentage100() {
_;
}

function test_WhenStreamStartTimeZero() external whenMerkleProofValid whenTotalPercentage100 {
// It should create a stream with block.timestamp as start time.
_test_Claim({ streamStartTime: 0, startTime: getBlockTimestamp() });
Expand Down
Loading

0 comments on commit 722b98e

Please sign in to comment.