Path.test fails to match when query params are omitted
enochcheung opened this issue · comments
Enoch Cheung commented
When query parameters are specified in the path pattern, it does not match paths that omit all query parameters
import { Path } from 'path-parser';
const path = new Path('/foo?:bar');
// Returns {bar: 1} as expected
console.log(path.test('/foo?bar=1'));
// Fails to match, returns null. I expect this to return {foo: undefined}
console.log(path.test('/foo'));
Seems like the reason this is happening is that the full path is passed into search-string
for query param parsing (
Line 187 in 2ee0233
/foo
, search-string
will try to interpret /foo
as a query param key, and end up returning {'/foo': null}
. This causes path matching to fail, because /foo
is an unexpected key