add test for zero grace period

This commit is contained in:
Sergei Tikhomirov 2024-10-03 14:51:01 +02:00
parent cc5ba324e6
commit 0a56628f29
No known key found for this signature in database
GPG Key ID: 6A1F8ED9D6538027

View File

@ -205,7 +205,7 @@ contract WakuRlnV2Test is Test {
vm.warp(gracePeriodStartTimestamp);
assertTrue(w.isInGracePeriod(idCommitment));
assertFalse(w.isExpired(idCommitment)); // FIXME: what if grace period duration == 0?
assertFalse(w.isExpired(idCommitment));
uint256[] memory commitmentsToExtend = new uint256[](1);
commitmentsToExtend[0] = idCommitment;
@ -242,6 +242,42 @@ contract WakuRlnV2Test is Test {
w.extendMemberships(commitmentsToExtend);
}
function test__ValidRegistrationNoGracePeriod(uint32 membershipRateLimit) external {
vm.pauseGasMetering();
uint256 idCommitment = 2;
(, uint256 price) = w.priceCalculator().calculate(membershipRateLimit);
vm.assume(
w.minMembershipRateLimit() <= membershipRateLimit && membershipRateLimit <= w.maxMembershipRateLimit()
);
vm.assume(w.isValidMembershipRateLimit(membershipRateLimit));
vm.startPrank(w.owner());
w.setGracePeriodDuration(0);
vm.stopPrank();
vm.resumeGasMetering();
token.approve(address(w), price);
w.register(idCommitment, membershipRateLimit);
(,, uint256 gracePeriodStartTimestamp, uint32 gracePeriodDuration,,,,) = w.memberships(idCommitment);
assertEq(gracePeriodDuration, 0);
assertFalse(w.isInGracePeriod(idCommitment));
assertFalse(w.isExpired(idCommitment));
uint256 expectedExpirationTimestamp = gracePeriodStartTimestamp + uint256(gracePeriodDuration);
uint256 membershipExpirationTimestamp = w.membershipExpirationTimestamp(idCommitment);
assertEq(expectedExpirationTimestamp, membershipExpirationTimestamp);
vm.warp(membershipExpirationTimestamp);
assertFalse(w.isInGracePeriod(idCommitment));
assertTrue(w.isExpired(idCommitment));
}
function test__ValidRegistrationExtendSingleMembership(uint32 membershipRateLimit) external {
vm.pauseGasMetering();
uint256 idCommitment = 2;