[Hotfix] Preset expiration in renewals for plans with no periodicity #135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a fix to the
renew
method in theSubscription
model to handle cases where theexpirationDate
is null, and adds new test cases to ensure the behavior is correctly validated. The changes improve the robustness of subscription renewal logic, particularly for plans with grace days but no periodicity.Fix to subscription renewal logic:
src/Models/Subscription.php
: Updated therenew
method to include a conditional check ensuring that grace days are only calculated if anexpirationDate
is provided. This prevents potential errors when theexpirationDate
is null.New test cases for subscription renewal:
tests/Models/SubscriptionTest.php
: Added two new test cases:testModelRenewsEvenIfPlanHasNoPeriodicityButHasGraceDays
: Verifies that a subscription can renew even if the plan lacks periodicity but includes grace days.testModelRenewsWithDefinedExpirationEvenIfPlanHasNoPeriodicityButHasGraceDays
: Ensures that a subscription renews correctly with a defined expiration date, calculating thegrace_days_ended_at
field as expected.