Improved route order flexibility

This commit is contained in:
Eduard Urbach 2023-07-10 14:48:28 +02:00
parent 00bab0323b
commit 59c0a95a89
Signed by: eduard
GPG key ID: 49226B848C78F6C8
4 changed files with 99 additions and 5 deletions

View file

@ -59,12 +59,26 @@ func TestWildcard(t *testing.T) {
router := router.New[string]()
router.Add("GET", "/", "Front page")
router.Add("GET", "/:slug", "Blog post")
router.Add("GET", "/users/:id", "Parameter")
router.Add("GET", "/images/*path", "Wildcard")
data, params := router.Lookup("GET", "/")
assert.Equal(t, len(params), 0)
assert.Equal(t, data, "Front page")
data, params = router.Lookup("GET", "/blog-post")
assert.Equal(t, len(params), 1)
assert.Equal(t, params[0].Key, "slug")
assert.Equal(t, params[0].Value, "blog-post")
assert.Equal(t, data, "Blog post")
data, params = router.Lookup("GET", "/users/42")
assert.Equal(t, len(params), 1)
assert.Equal(t, params[0].Key, "id")
assert.Equal(t, params[0].Value, "42")
assert.Equal(t, data, "Parameter")
data, params = router.Lookup("GET", "/images/favicon/256.png")
assert.Equal(t, len(params), 1)
assert.Equal(t, params[0].Key, "path")