Fix path rejection for Dependency path
What does this MR do and why?
Fix path rejection for Dependency path
The prior implementation of the path rejection relied on array intersection. This fails because the intersection check does not preserve order. A short path which has the same elements as a long path, but misses some intermediate values, would be rejected.
This implementation changes to a pure string approach where we can guarantee that ordering is maintained.
References
- Depends on !183625 (merged), which needs to be merged first.
How to set up and validate locally
Copy the new test into the master branch to see the failure. You'll need to update the id: occurrence_3.id lines to id: component_3.id to make the test work with the old structure.
The new test case covers the situation where we have an a->b->c and a->c overlapping path, demonstrating that we now emit both paths (where before we didn't).