Skip to content

Commit f7d8b61

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

File tree

1 file changed

+79
-36
lines changed

1 file changed

+79
-36
lines changed

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

Lines changed: 79 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -561,51 +561,98 @@ contract SchedulerTest is Test, SchedulerEvents, PulseSchedulerTestUtils {
561561
console.log("Minimum balance required:", minimumBalance);
562562
console.log("Initial balance:", status.balanceInWei);
563563

564-
// Verify subscription is active
564+
// Verify subscription is active and has exactly minimum balance
565565
assertTrue(params.isActive, "Subscription should be active");
566-
567-
// Test 1: Create an active subscription with exactly minimum balance
568-
uint256 exactMinSubscriptionId = scheduler.createSubscription{value: minimumBalance}(
569-
SchedulerState.SubscriptionParams({
570-
priceIds: params.priceIds,
571-
readerWhitelist: params.readerWhitelist,
572-
whitelistEnabled: params.whitelistEnabled,
573-
isActive: true,
574-
isPermanent: false,
575-
updateCriteria: params.updateCriteria
576-
})
577-
);
578-
579-
// Verify the subscription has exactly minimum balance
580-
(
581-
, // Ignore params
582-
SchedulerState.SubscriptionStatus memory exactMinStatus
583-
) = scheduler.getSubscription(exactMinSubscriptionId);
584-
assertEq(exactMinStatus.balanceInWei, minimumBalance, "Balance should be exactly minimum");
566+
assertEq(status.balanceInWei, minimumBalance, "Initial balance should equal minimum balance");
585567

586568
// Adding 0 funds should succeed (since balance = minimum, not < minimum)
587-
scheduler.addFunds{value: 0}(exactMinSubscriptionId);
569+
scheduler.addFunds{value: 0}(subscriptionId);
588570

589-
// Verify balance is still at minimum
590-
(, exactMinStatus) = scheduler.getSubscription(exactMinSubscriptionId);
571+
// Verify balance is unchanged
572+
(
573+
,
574+
SchedulerState.SubscriptionStatus memory updatedStatus
575+
) = scheduler.getSubscription(subscriptionId);
591576
assertEq(
592-
exactMinStatus.balanceInWei,
577+
updatedStatus.balanceInWei,
593578
minimumBalance,
594579
"Balance should still be at minimum after adding 0 funds"
595580
);
596581

597582
// Add more funds (should succeed)
598-
scheduler.addFunds{value: 1 wei}(exactMinSubscriptionId);
583+
scheduler.addFunds{value: 1 wei}(subscriptionId);
599584

600585
// Verify balance increased
601-
(, exactMinStatus) = scheduler.getSubscription(exactMinSubscriptionId);
586+
(
587+
,
588+
updatedStatus
589+
) = scheduler.getSubscription(subscriptionId);
602590
assertEq(
603-
exactMinStatus.balanceInWei,
591+
updatedStatus.balanceInWei,
604592
minimumBalance + 1 wei,
605593
"Balance should be minimum + 1 wei after adding funds"
606594
);
595+
}
596+
597+
function testAddFundsWithInactiveSubscription() public {
598+
// Create a subscription with minimum balance
599+
uint256 subscriptionId = addTestSubscription(
600+
scheduler,
601+
address(reader)
602+
);
603+
604+
// Get subscription parameters and calculate minimum balance
605+
(
606+
SchedulerState.SubscriptionParams memory params,
607+
// Status not needed for this test
608+
) = scheduler.getSubscription(subscriptionId);
609+
uint256 minimumBalance = scheduler.getMinimumBalance(
610+
uint8(params.priceIds.length)
611+
);
612+
613+
// Deactivate the subscription
614+
SchedulerState.SubscriptionParams memory testParams = params;
615+
testParams.isActive = false;
616+
scheduler.updateSubscription(subscriptionId, testParams);
617+
618+
// Withdraw funds to get below minimum
619+
uint256 withdrawAmount = minimumBalance - 1 wei;
620+
scheduler.withdrawFunds(subscriptionId, withdrawAmount);
621+
622+
// Verify balance is now below minimum
623+
(
624+
SchedulerState.SubscriptionParams memory testUpdatedParams,
625+
SchedulerState.SubscriptionStatus memory testUpdatedStatus
626+
) = scheduler.getSubscription(subscriptionId);
627+
assertEq(testUpdatedStatus.balanceInWei, 1 wei, "Balance should be 1 wei after withdrawal");
607628

608-
// Test 2: Test with a permanent subscription
629+
// Try to add funds to inactive subscription (should fail with InactiveSubscription)
630+
vm.expectRevert(abi.encodeWithSelector(InactiveSubscription.selector));
631+
scheduler.addFunds{value: 1 wei}(subscriptionId);
632+
633+
// Try to reactivate with insufficient balance (should fail)
634+
testUpdatedParams.isActive = true;
635+
vm.expectRevert(abi.encodeWithSelector(InsufficientBalance.selector));
636+
scheduler.updateSubscription(subscriptionId, testUpdatedParams);
637+
}
638+
639+
function testAddFundsEnforcesMinimumBalanceForPermanentSubscription() public {
640+
// Create a subscription with minimum balance
641+
uint256 subscriptionId = addTestSubscription(
642+
scheduler,
643+
address(reader)
644+
);
645+
646+
// Get subscription parameters and calculate minimum balance
647+
(
648+
SchedulerState.SubscriptionParams memory params,
649+
// Status not needed for this test
650+
) = scheduler.getSubscription(subscriptionId);
651+
uint256 minimumBalance = scheduler.getMinimumBalance(
652+
uint8(params.priceIds.length)
653+
);
654+
655+
// Create a permanent subscription with minimum balance
609656
uint256 permanentSubscriptionId = scheduler.createSubscription{value: minimumBalance}(
610657
SchedulerState.SubscriptionParams({
611658
priceIds: params.priceIds,
@@ -617,21 +664,17 @@ contract SchedulerTest is Test, SchedulerEvents, PulseSchedulerTestUtils {
617664
})
618665
);
619666

620-
// Verify the permanent subscription has exactly minimum balance
621-
(
622-
, // Ignore params
623-
SchedulerState.SubscriptionStatus memory permanentStatus
624-
) = scheduler.getSubscription(permanentSubscriptionId);
625-
assertEq(permanentStatus.balanceInWei, minimumBalance, "Permanent subscription balance should be exactly minimum");
626-
627667
// Adding 0 funds should succeed (since balance = minimum, not < minimum)
628668
scheduler.addFunds{value: 0}(permanentSubscriptionId);
629669

630670
// Add more funds (should succeed)
631671
scheduler.addFunds{value: 1 wei}(permanentSubscriptionId);
632672

633673
// Verify balance increased
634-
(, permanentStatus) = scheduler.getSubscription(permanentSubscriptionId);
674+
(
675+
,
676+
SchedulerState.SubscriptionStatus memory permanentStatus
677+
) = scheduler.getSubscription(permanentSubscriptionId);
635678
assertEq(
636679
permanentStatus.balanceInWei,
637680
minimumBalance + 1 wei,

0 commit comments

Comments
 (0)