allow trailing slash for routes - fixes #2763

This commit is contained in:
Stephan Hoyer 2022-04-18 16:51:13 +02:00
parent 8c149d3653
commit 517661a606
3 changed files with 18 additions and 2 deletions

View file

@ -209,6 +209,23 @@ o.spec("route", function() {
)
})
o("keeps trailing / in rest parameterized route", function() {
$window.location.href = prefix + "/test/d/"
route(root, "/test/:a...", {
"/test/:a..." : {
view: lock(function(vnode) {
return JSON.stringify(route.param()) + " " +
JSON.stringify(vnode.attrs) + " " +
route.get()
})
}
})
o(root.firstChild.nodeValue).equals(
'{"a":"d/"} {"a":"d/"} /test/d/'
)
})
o("handles route with search", function() {
$window.location.href = prefix + "/test?a=b&c=d"
route(root, "/test", {

View file

@ -13,7 +13,6 @@ module.exports = function(url) {
if (!path) path = "/"
else {
if (path[0] !== "/") path = "/" + path
if (path.length > 1 && path[path.length - 1] === "/") path = path.slice(0, -1)
}
return {
path: path,

View file

@ -112,7 +112,7 @@ o.spec("parsePathname", function() {
o("parses route + query, ignores hash with lots of junk slashes", function() {
var data = parsePathname("//route/////foo//?a=1&b=2#c=3&d=4")
o(data).deepEquals({
path: "/route/foo",
path: "/route/foo/",
params: {a: "1", b: "2"}
})
})