diff --git a/src/test/MintRewardNotifierTestBase.sol b/src/test/MintRewardNotifierTestBase.sol new file mode 100644 index 0000000..463b6bf --- /dev/null +++ b/src/test/MintRewardNotifierTestBase.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// slither-disable-start reentrancy-benign + +pragma solidity ^0.8.23; + +import {Test} from "forge-std/Test.sol"; +import {MintRewardNotifier} from "../notifiers/MintRewardNotifier.sol"; +import {PercentAssertions} from "./helpers/PercentAssertions.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Mintable} from "./interfaces/IERC20Mintable.sol"; +import {StakerTestBase} from "./StakerTestBase.sol"; + +abstract contract MintRewardNotifierTestBase is StakerTestBase { + MintRewardNotifier rewardNotifier; + + function _notifyRewardAmount(uint256 _amount) public override { + rewardNotifier.notify(); + } +} \ No newline at end of file diff --git a/test/test/MintRewardNotifierTestBase.t.sol b/test/test/MintRewardNotifierTestBase.t.sol new file mode 100644 index 0000000..57e7031 --- /dev/null +++ b/test/test/MintRewardNotifierTestBase.t.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: AGPL-3.0-only +pragma solidity ^0.8.23; + +import {MintRewardNotifierTestBase} from "../../src/test/MintRewardNotifierTestBase.sol"; +import {StakeBase, WithdrawBase} from "../../src/test/StandardTestSuite.sol"; +import {Staker} from "../../src/Staker.sol"; +import {MintRewardNotifier} from "../../src/notifiers/MintRewardNotifier.sol"; +import {DeployBaseFake} from "../fakes/DeployBaseFake.sol"; +import {ERC20Fake} from "../fakes/ERC20Fake.sol"; +import {ERC20VotesMock} from "../mocks/MockERC20Votes.sol"; + +contract DeployMintRewardNotifierTestBase is MintRewardNotifierTestBase { + DeployBaseFake immutable DEPLOY_SCRIPT; + + constructor() { + REWARD_TOKEN = new ERC20Fake(); + STAKE_TOKEN = new ERC20VotesMock(); + DEPLOY_SCRIPT = new DeployBaseFake(REWARD_TOKEN, STAKE_TOKEN); + (, Staker _staker, address[] memory _rewardNotifiers) = DEPLOY_SCRIPT.run(); + rewardNotifier = MintRewardNotifier(_rewardNotifiers[0]); + staker = _staker; + } +} + +contract Stake is StakeBase, DeployMintRewardNotifierTestBase {} + +contract Withdraw is WithdrawBase, DeployMintRewardNotifierTestBase {} \ No newline at end of file