fixed router and added test for prefix

This commit is contained in:
2017-11-13 19:42:28 +00:00
parent ef857c40a4
commit dcca37ac28
2 changed files with 19 additions and 3 deletions
+5 -3
View File
@@ -17,7 +17,7 @@ type DefaultRouter struct {
prefix string prefix string
} }
func (r *Prefix) Prefix(path string) { func (r *DefaultRouter) Prefix(path string) {
r.prefix = path r.prefix = path
} }
@@ -49,11 +49,13 @@ func (r *DefaultRouter) GetStaticRoutes() []*StaticRoute {
} }
func (r *DefaultRouter) addRoute(m, p string, h Handler) { func (r *DefaultRouter) addRoute(m, p string, h Handler) {
path := fmt.Sprintf("/%s/%s", strings.TrimPrefix(r.prefix, "/"), strings.TrimSuffix(p, "/")) if r.prefix != "" {
p = fmt.Sprintf("/%s/%s", strings.TrimPrefix(r.prefix, "/"), strings.TrimSuffix(p, "/"))
}
r.Routes = append(r.Routes, &Route{ r.Routes = append(r.Routes, &Route{
Method: m, Method: m,
Path: path, Path: p,
Handler: h, Handler: h,
}) })
} }
+14
View File
@@ -33,3 +33,17 @@ func Test_Static_Route_Creation(t *testing.T) {
route := routes[0] route := routes[0]
r.Equal("/test-path", route.Path) r.Equal("/test-path", route.Path)
} }
func Test_Prefix_Route_Creation(t *testing.T) {
r := require.New(t)
router := tuu.NewRouter()
router.Prefix("/prefix")
router.GET("/home", func(ctx tuu.Context) error { return nil })
routes := router.GetRoutes()
r.Len(routes, 1)
route := routes[0]
r.Contains(route.Path, "/prefix")
}