Whether an actual URL satisfies a recorded URL pattern. Both are normalized first.
An ABSOLUTE pattern (one carrying an origin) is matched structurally: same origin,
and the same path or a deeper one at a / boundary, with the pattern's query
parameters all present. It used to be plain containment, which made every
full-URL assertion vacuous — the pattern http://localhost:4200/ matched
http://localhost:4200/login-error, so a goal postcondition distilled from a run
ending at the app root passed on any URL of that origin, error pages included.
A path-FRAGMENT pattern (e.g. /app/data) keeps containment semantics, which is
what makes it a fragment. An empty pattern matches anything.
Whether an actual URL satisfies a recorded URL pattern. Both are normalized first.
An ABSOLUTE pattern (one carrying an origin) is matched structurally: same origin, and the same path or a deeper one at a
/boundary, with the pattern's query parameters all present. It used to be plain containment, which made every full-URL assertion vacuous — the patternhttp://localhost:4200/matchedhttp://localhost:4200/login-error, so a goal postcondition distilled from a run ending at the app root passed on any URL of that origin, error pages included.A path-FRAGMENT pattern (e.g.
/app/data) keeps containment semantics, which is what makes it a fragment. An empty pattern matches anything.