Skip to content

Commit 899027e

Browse files
test: fix unused variable in PulseScheduler test
Co-Authored-By: Tejas Badadare <[email protected]>
1 parent f7d8b61 commit 899027e

File tree

1 file changed

+66
-8
lines changed

1 file changed

+66
-8
lines changed

target_chains/ethereum/contracts/forge-test/PulseScheduler.t.sol

Lines changed: 66 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -565,32 +565,90 @@ contract SchedulerTest is Test, SchedulerEvents, PulseSchedulerTestUtils {
565565
assertTrue(params.isActive, "Subscription should be active");
566566
assertEq(status.balanceInWei, minimumBalance, "Initial balance should equal minimum balance");
567567

568-
// Adding 0 funds should succeed (since balance = minimum, not < minimum)
568+
// Step 1: Try to add 0 funds to active subscription at minimum balance (should succeed)
569569
scheduler.addFunds{value: 0}(subscriptionId);
570570

571-
// Verify balance is unchanged
571+
// Verify balance is still at minimum
572572
(
573573
,
574-
SchedulerState.SubscriptionStatus memory updatedStatus
574+
SchedulerState.SubscriptionStatus memory statusAfterAddingZero
575575
) = scheduler.getSubscription(subscriptionId);
576576
assertEq(
577-
updatedStatus.balanceInWei,
577+
statusAfterAddingZero.balanceInWei,
578578
minimumBalance,
579579
"Balance should still be at minimum after adding 0 funds"
580580
);
581581

582-
// Add more funds (should succeed)
582+
// Step 2: Add more funds to active subscription (should succeed)
583583
scheduler.addFunds{value: 1 wei}(subscriptionId);
584584

585585
// Verify balance increased
586586
(
587587
,
588-
updatedStatus
588+
SchedulerState.SubscriptionStatus memory statusAfterAddingMore
589589
) = scheduler.getSubscription(subscriptionId);
590590
assertEq(
591-
updatedStatus.balanceInWei,
591+
statusAfterAddingMore.balanceInWei,
592592
minimumBalance + 1 wei,
593-
"Balance should be minimum + 1 wei after adding funds"
593+
"Balance should be minimum + 1 wei after adding more funds"
594+
);
595+
596+
// Step 3: Create a new subscription with minimum balance
597+
uint256 subscriptionId2 = addTestSubscription(
598+
scheduler,
599+
address(reader)
600+
);
601+
602+
// Get subscription parameters
603+
(
604+
SchedulerState.SubscriptionParams memory params2,
605+
// Status not needed for this test
606+
) = scheduler.getSubscription(subscriptionId2);
607+
608+
// Step 4: Deactivate the subscription so we can withdraw below minimum
609+
SchedulerState.SubscriptionParams memory deactivatedParams = params2;
610+
deactivatedParams.isActive = false;
611+
scheduler.updateSubscription(subscriptionId2, deactivatedParams);
612+
613+
// Step 5: Withdraw funds to get below minimum balance
614+
scheduler.withdrawFunds(subscriptionId2, minimumBalance - 1 wei);
615+
616+
// Verify balance is now below minimum
617+
(
618+
,
619+
SchedulerState.SubscriptionStatus memory statusAfterWithdraw
620+
) = scheduler.getSubscription(subscriptionId2);
621+
assertEq(
622+
statusAfterWithdraw.balanceInWei,
623+
1 wei,
624+
"Balance should be 1 wei after withdrawal"
625+
);
626+
627+
// Step 6: Try to add funds to inactive subscription (should revert with InactiveSubscription)
628+
vm.expectRevert(abi.encodeWithSelector(InactiveSubscription.selector));
629+
scheduler.addFunds{value: 1 wei}(subscriptionId2);
630+
631+
// Step 7: Try to reactivate with insufficient balance (should revert with InsufficientBalance)
632+
SchedulerState.SubscriptionParams memory reactivatedParams = deactivatedParams;
633+
reactivatedParams.isActive = true;
634+
vm.expectRevert(abi.encodeWithSelector(InsufficientBalance.selector));
635+
scheduler.updateSubscription(subscriptionId2, reactivatedParams);
636+
637+
// Step 8: Add funds to reach minimum balance while still inactive
638+
scheduler.addFunds{value: minimumBalance}(subscriptionId);
639+
640+
// Step 9: Try to add 0 funds to active subscription at minimum balance (should succeed)
641+
scheduler.addFunds{value: 0}(subscriptionId);
642+
643+
// Verify balance is still at minimum + 1 wei + minimumBalance
644+
(
645+
,
646+
SchedulerState.SubscriptionStatus memory statusAfterMoreFunds
647+
) = scheduler.getSubscription(subscriptionId);
648+
assertEq(
649+
statusAfterMoreFunds.balanceInWei,
650+
minimumBalance + 1 wei + minimumBalance,
651+
"Balance should be minimum + 1 wei + minimumBalance after adding more funds"
594652
);
595653
}
596654

0 commit comments

Comments
 (0)