[Router] fixes validatePath
duplicate params & reject spaces in routes
#420
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #382
This PR makes
validatePath
throw an error when a route's provided path contains at least one space character.It's only looking for
' '
; I figured other whitespace characters such as'\t'
,'\n'
, ... would make so little sense that it does not warrant "complicating" the code & tests with that.Super easy to change if you'd rather reject everything though!
I also took the opportunity to fix the duplicate params detection, which was broken when only one of two duplicates used a type, and to refactor the router's utils tests a little 🙂
Question: I intentionally added a test case that validates
'/users/{id}/photos/{photo_id}?format=jpg&w=400&h=400'
as a valid route.I don't see why not, but I wanted to make sure we actually allow query strings in routes paths?