Added trailing slash for static routes
This commit is contained in:
parent
0323126f2c
commit
a7d64037a7
8 changed files with 119 additions and 96 deletions
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"git.akyoto.dev/go/assert"
|
||||
"git.akyoto.dev/go/router"
|
||||
"git.akyoto.dev/go/router/testdata"
|
||||
)
|
||||
|
||||
func TestStatic(t *testing.T) {
|
||||
|
@ -162,18 +163,18 @@ func TestMethods(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGitHub(t *testing.T) {
|
||||
routes := loadRoutes("testdata/github.txt")
|
||||
routes := testdata.Routes("testdata/github.txt")
|
||||
r := router.New[string]()
|
||||
|
||||
for _, route := range routes {
|
||||
r.Add(route.method, route.path, "octocat")
|
||||
r.Add(route.Method, route.Path, "octocat")
|
||||
}
|
||||
|
||||
for _, route := range routes {
|
||||
data, _ := r.Lookup(route.method, route.path)
|
||||
data, _ := r.Lookup(route.Method, route.Path)
|
||||
assert.Equal(t, data, "octocat")
|
||||
|
||||
data = r.LookupNoAlloc(route.method, route.path, func(string, string) {})
|
||||
data = r.LookupNoAlloc(route.Method, route.Path, func(string, string) {})
|
||||
assert.Equal(t, data, "octocat")
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +182,6 @@ func TestGitHub(t *testing.T) {
|
|||
func TestTrailingSlash(t *testing.T) {
|
||||
r := router.New[string]()
|
||||
r.Add("GET", "/hello", "Hello 1")
|
||||
r.Add("GET", "/hello/", "Hello 2")
|
||||
|
||||
data, params := r.Lookup("GET", "/hello")
|
||||
assert.Equal(t, len(params), 0)
|
||||
|
@ -189,7 +189,35 @@ func TestTrailingSlash(t *testing.T) {
|
|||
|
||||
data, params = r.Lookup("GET", "/hello/")
|
||||
assert.Equal(t, len(params), 0)
|
||||
assert.Equal(t, data, "Hello 2")
|
||||
assert.Equal(t, data, "Hello 1")
|
||||
}
|
||||
|
||||
func TestTrailingSlashOverwrite(t *testing.T) {
|
||||
r := router.New[string]()
|
||||
r.Add("GET", "/hello", "route 1")
|
||||
r.Add("GET", "/hello/", "route 2")
|
||||
r.Add("GET", "/:param", "route 3")
|
||||
r.Add("GET", "/:param/", "route 4")
|
||||
r.Add("GET", "/*any", "route 5")
|
||||
|
||||
data, params := r.Lookup("GET", "/hello")
|
||||
assert.Equal(t, len(params), 0)
|
||||
assert.Equal(t, data, "route 1")
|
||||
|
||||
data, params = r.Lookup("GET", "/hello/")
|
||||
assert.Equal(t, len(params), 0)
|
||||
assert.Equal(t, data, "route 2")
|
||||
|
||||
data, params = r.Lookup("GET", "/param")
|
||||
assert.Equal(t, len(params), 1)
|
||||
assert.Equal(t, data, "route 3")
|
||||
|
||||
data, params = r.Lookup("GET", "/param/")
|
||||
assert.Equal(t, len(params), 1)
|
||||
assert.Equal(t, data, "route 4")
|
||||
|
||||
data, _ = r.Lookup("GET", "/wild/card/")
|
||||
assert.Equal(t, data, "route 5")
|
||||
}
|
||||
|
||||
func TestOverwrite(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue