fix: wildcard node should be the last child.

This commit is contained in:
liruohrh 2025-10-12 17:30:55 +08:00
parent c3d1092b3b
commit deb81c1d09
2 changed files with 4 additions and 1 deletions

View File

@ -833,7 +833,7 @@ walk: // Outer loop for walking the tree
return nil
}
n = n.children[0]
n = n.children[len(n.children)-1]
switch n.nType {
case param:
// Find param end (either '/' or path end)

View File

@ -751,6 +751,8 @@ func TestTreeFindCaseInsensitivePath(t *testing.T) {
"/w/𠜎", // 4 byte
"/w/𠜏/", // 4 byte
longPath,
"/param/same/:id",
"/param/same/1",
}
for _, route := range routes {
@ -844,6 +846,7 @@ func TestTreeFindCaseInsensitivePath(t *testing.T) {
{"/w/𠜎/", "/w/𠜎", true, true},
{"/w/𠜏", "/w/𠜏/", true, true},
{lOngPath, longPath, true, true},
{"/param/same/prefix/noexist", "", false, false},
}
// With fixTrailingSlash = true
for _, test := range tests {