Skip to content

Conversation

@f-delahaye
Copy link
Contributor

Description

@ptrthomas A tough one to review ! More details are available on the issue itself.
As a reminder:

  • operators are now classes.
  • the main operator is CoreOperator which contains most of the logic previously in MatchOperation
  • this makes it possible to create a specific CoreOperator where the actual proposed fix for Karate contains only shortcut fails in v1.4.1 #2515 is implemented
  • Not and Each are operators too which in theory can decorate any CoreOperator, and deep is natively supported by CoreOperator so missing combinations (e.g. EACH_NOT_CONTAINS_DEEP) could be implemented easily by just adding the constant in Match.Type.
  • the matchEmptyAllowed flag has been dropped and is now

I have tried to make as few changes as possible and hope the fixes outweigh the risks.
Please feel free to share any feedback or suggestions

@ptrthomas
Copy link
Member

I think this is good. so all tests pass? what are the risks you see, if any @f-delahaye

@f-delahaye
Copy link
Contributor Author

I can think of 2 risks:

  • some APIs (Match.Type, MatchOperation) have changed and are not backwards compatible, not sure if clients use them directly or not
  • A few logics which are currently only applied for contains, will also be applied for contains deep with the new version. For example, match <map> contains {} passes, as implemented by this hack . With the new version, match <map> contains deep {} will pass, too. But these are edge cases.

Other than that, as you said, all the tests pass.

@ptrthomas ptrthomas merged commit 5c5f6c0 into karatelabs:develop Aug 9, 2025
3 checks passed
@f-delahaye f-delahaye deleted the 2515-third-revision-logic-in-matchoperator branch August 9, 2025 08:59
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