Skip to content

fix(condition): handling of missing source and/or target keys#277

Merged
jtan-brex merged 3 commits intomainfrom
jtan-fix-issue-263
Nov 26, 2024
Merged

fix(condition): handling of missing source and/or target keys#277
jtan-brex merged 3 commits intomainfrom
jtan-fix-issue-263

Conversation

@jtan-brex
Copy link
Contributor

@jtan-brex jtan-brex commented Nov 18, 2024

Description

Adds additional handling of missing source and/or target keys in condition package number equal to and string equal to.

Motivation and Context

Fix for issue:Condition Package Zero Value Matches Can Be Inaccurate #263.

Current behaviour of condition package does not contain source key or target key's object path existence check. This caused unexpected behaviour:

  • When only src key is present but the path doesn't exist, condition package inaccurately matches on zero value and empty string.

  • When both source key and target key are present but both paths do not exist, the number equal to and string equal to return true.

This adds checks thus

  • when source key or target key is present in condition package number equal to and string equal to, but either of path does not exist in the object, then condition equal to check return false.

How Has This Been Tested?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

@jtan-brex jtan-brex marked this pull request as ready for review November 20, 2024 16:05
@jtan-brex jtan-brex requested a review from a team as a code owner November 20, 2024 16:05
false,
},
{
"pass",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any tests that return false should be labeled as "fail" ("pass" is for tests that return true).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gotcha, thanks for pointing that out! fixed test cases to reflect expected 'fail' outcomes.

@jshlbrd jshlbrd self-assigned this Nov 21, 2024
@jtan-brex jtan-brex requested a review from jshlbrd November 21, 2024 22:15
Copy link
Contributor

@jshlbrd jshlbrd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There will need to be more work on this prior to the next major update. I think we can do this in more places, but not everywhere without introducing a breaking change.

@jtan-brex jtan-brex merged commit 090981b into main Nov 26, 2024
@jtan-brex jtan-brex deleted the jtan-fix-issue-263 branch November 26, 2024 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants