From 87f2ffa063691cf8f07e7ca778df640d2413e280 Mon Sep 17 00:00:00 2001 From: Shriganesh Gupta Date: Sun, 16 Feb 2025 18:18:59 +0530 Subject: [PATCH] Update DSCEngineTest.t.sol - testCanRedeemCollateral() in the previous testCanRedeemCollateral() function it was being asserted that userBalance = amountCollateral `assertEq(userBalance, amountCollateral)` but that test is bound to fail because the `user` only had `amountCollateral = 10 ether` deposited as collateral and after calling the `dsce.redeemCollateral(weth, amountCollateral);` LOC there's not going to be any collateral left in the DSCEngine. --- test/unit/DSCEngineTest.t.sol | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/unit/DSCEngineTest.t.sol b/test/unit/DSCEngineTest.t.sol index 6d2ac3d..66715c5 100644 --- a/test/unit/DSCEngineTest.t.sol +++ b/test/unit/DSCEngineTest.t.sol @@ -315,12 +315,15 @@ contract DSCEngineTest is StdCheats, Test { function testCanRedeemCollateral() public depositedCollateral { vm.startPrank(user); + uint256 userBalanceBeforeRedeem = dsce.getCollateralBalanceOfUser(user, weth); + assertEq(userBalanceBeforeRedeem, amountCollateral); dsce.redeemCollateral(weth, amountCollateral); - uint256 userBalance = ERC20Mock(weth).balanceOf(user); - assertEq(userBalance, amountCollateral); + uint256 userBalanceAfterRedeem = dsce.getCollateralBalanceOfUser(user, weth); + assertEq(userBalanceAfterRedeem, 0); vm.stopPrank(); } + function testEmitCollateralRedeemedWithCorrectArgs() public depositedCollateral { vm.expectEmit(true, true, true, true, address(dsce)); emit CollateralRedeemed(user, user, weth, amountCollateral);