Fix BaseDateRangeConditionRule not handling negative intervals correctly. #13463
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.
Description
This fixes a bug in the
DateTimeHelper::toDateInterval
method, where if passed a negative value, returns a positive interval. This caused an issue inDateRange::dateIntervalByTimePeriod
, and subsequently theBaseDateRangeConditionRule
.I noticed this when trying to filter elements on the element index page by date period (e.g. After 1 day ago).
I went ahead and added a check for negative numbers in
DateTimeHelper::toDateInterval
and updated theDateTimeHelperTest
to make sure it works.DateCreatedConditionRuleTest
also passes now thanks to this fix.Ran these tests using PHP version 8.2.4.