Skip to content

Commit 6c2fdae

Browse files
committed
Added some more test to increase my test coverage
1 parent fbe48b9 commit 6c2fdae

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

test/RebaseToken.t.sol

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,4 +171,62 @@ contract RebaseTokenTest is Test {
171171
rebaseToken.setInterestRate(newInterestRate);
172172
assertEq(rebaseToken.getInterestRate(), initInterestRate);
173173
}
174+
175+
function testTransferMintsAccruedInterestToBothUsers(
176+
uint256 mintAmount,
177+
uint256 amountSent
178+
) public {
179+
mintAmount = bound(mintAmount, 1e5 + 1e5, type(uint96).max);
180+
amountSent = bound(amountSent, 1e5, mintAmount - 1e5);
181+
vm.deal(user, mintAmount);
182+
vm.prank(user);
183+
vault.deposit{value: mintAmount}();
184+
185+
address user2 = makeAddr("user2");
186+
uint256 userBalance = rebaseToken.balanceOf(user);
187+
uint256 user2Balance = rebaseToken.balanceOf(user2);
188+
assertEq(userBalance, mintAmount);
189+
assertEq(user2Balance, 0);
190+
191+
vm.warp(block.timestamp + 1.5 hours);
192+
vm.prank(user);
193+
rebaseToken.transfer(user2, amountSent);
194+
195+
assertEq(
196+
rebaseToken.getUserInterestrate(user),
197+
rebaseToken.getUserInterestrate(user2)
198+
);
199+
}
200+
201+
function testTransferFromWithAllowance(
202+
uint256 allowance /*uint256 amount */
203+
) public {
204+
allowance = bound(allowance, 1e5, type(uint96).max);
205+
//amount = bound(amount, 1e5, type(uint96).max);
206+
207+
vm.deal(owner, allowance);
208+
vm.prank(owner);
209+
vault.deposit{value: allowance}();
210+
211+
vm.prank(owner);
212+
rebaseToken.approve(user, allowance);
213+
214+
address user1 = makeAddr("user1");
215+
216+
uint256 ownerBalance = rebaseToken.balanceOf(owner);
217+
uint256 user1Balance = rebaseToken.balanceOf(user1);
218+
uint256 userAllowanceBefore = rebaseToken.allowance(owner, user);
219+
220+
vm.prank(user);
221+
rebaseToken.transferFrom(owner, user1, allowance);
222+
223+
uint256 ownerBalanceAfter = rebaseToken.balanceOf(owner);
224+
uint256 user1BalanceAfter = rebaseToken.balanceOf(user1);
225+
uint256 userAllowanceAfter = rebaseToken.allowance(owner, user);
226+
227+
// Assert the balances and allowance are updated correctly
228+
assertEq(ownerBalanceAfter, ownerBalance - allowance);
229+
assertEq(user1BalanceAfter, user1Balance + allowance);
230+
assertEq(userAllowanceAfter, userAllowanceBefore - allowance);
231+
}
174232
}

0 commit comments

Comments
 (0)