Fix: handle null/undefined in in/notIn operators and add string support for contains#431
Open
Tommy1109255 wants to merge 1 commit intoCacheControl:masterfrom
Open
Fix: handle null/undefined in in/notIn operators and add string support for contains#431Tommy1109255 wants to merge 1 commit intoCacheControl:masterfrom
Tommy1109255 wants to merge 1 commit intoCacheControl:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Bug Fixes:
Empty result handling: When rules don't match (e.g. accountId: 'washington'), the events array is empty and we no longer log incomplete strings like "washington is a ".
Missing error handling: Added .catch() to async calls in engine.addFact. If accountId is invalid or the third-party API fails, we now handle the rejection instead of crashing.
Comment typo: Fixed extra quote on line 41:
'status''→'status'.Enhancements:
Prevent runtime crashes: Added isCollection check for in / notIn operators. If value is null or undefined, the engine now returns false (or true for notIn) instead of throwing.
Extended string support: contains / doesNotContain now work with both String and Array types, not just Array.
Enhanced robustness: Updated numberValidator to safely handle comparisons when values aren't numeric.
Testing:
All 248 existing unit tests pass.
Manually verified: null/undefined cases no longer crash; string contains logic works as expected.
Confirmed empty events array no longer produces incomplete output.