new tests for minting based on donations

Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
Uncle Fatso 2025-06-27 20:50:01 +03:00
parent 4bea615f8b
commit a8790cc452
Signed by: f4ts0
GPG Key ID: 565F4F2860226EBB

View File

@ -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);