From a8790cc4527ba37b560daa06de76f5d1ebcf1660 Mon Sep 17 00:00:00 2001 From: Uncle Fatso Date: Fri, 27 Jun 2025 20:50:01 +0300 Subject: [PATCH] new tests for minting based on donations Signed-off-by: Uncle Fatso --- test/tokens/Reserve.t.sol | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/tokens/Reserve.t.sol b/test/tokens/Reserve.t.sol index 53f1a7f..055d6a1 100644 --- a/test/tokens/Reserve.t.sol +++ b/test/tokens/Reserve.t.sol @@ -35,6 +35,9 @@ contract ReserveTest is Test { assertEq(reserve.symbol(), symbol); assertEq(reserve.decimals(), 18); assertEq(reserve.totalSupply(), 0); + + assertEq(reserve.donationRate(), 0); + assertEq(reserve.conversionRate(), conversionRate); } function test_mint_couldBeDoneWithValue() public { @@ -83,6 +86,37 @@ contract ReserveTest is Test { assertEq(reserve.balanceOf(aliceAddress), 0); } + function test_mint_donationNotTakenIfRateNotSet() public { + assertEq(reserve.totalSupply(), 0); + assertEq(reserve.donationRate(), 0); + assertEq(reserve.accumulatedDonation(), 0); + + deal(aliceAddress, sendAmount); + vm.prank(aliceAddress); + reserve.mint{ value: sendAmount }(aliceAddress); + + assertEq(reserve.totalSupply(), sendAmount * conversionRate); + assertEq(reserve.donationRate(), 0); + assertEq(reserve.accumulatedDonation(), 0); + } + + function test_mint_donationIsTakenIfRateExists() public { + assertEq(reserve.totalSupply(), 0); + assertEq(reserve.donationRate(), 0); + assertEq(reserve.accumulatedDonation(), 0); + + vm.prank(initializer); + reserve.changeReminder(1e4); // 10% + + deal(aliceAddress, sendAmount); + vm.prank(aliceAddress); + reserve.mint{ value: sendAmount }(aliceAddress); + + assertEq(reserve.totalSupply(), sendAmount * conversionRate); + assertEq(reserve.donationRate(), 1e4); + assertEq(reserve.accumulatedDonation(), sendAmount * 1e4 / 1e5); + } + function test_rate_couldBeChangedByDeployer() public { assertEq(reserve.conversionRate(), conversionRate); vm.prank(initializer);