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

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).

Merge request reports

Loading