MCPcopy
hub / github.com/gofiber/fiber / Test_Mount_Route_Names

Function Test_Mount_Route_Names

mount_test.go:433–504  ·  view source on GitHub ↗

go test -run Test_Mount_Route_Names

(t *testing.T)

Source from the content-addressed store, hash-verified

431
432// go test -run Test_Mount_Route_Names
433func Test_Mount_Route_Names(t *testing.T) {
434 t.Parallel()
435 // create sub-app with 2 handlers:
436 subApp1 := New()
437 subApp1.Get("/users", func(c Ctx) error {
438 url, err := c.GetRouteURL("add-user", Map{})
439 require.NoError(t, err)
440 require.Equal(t, "/app1/users", url, "handler: app1.add-user") // the prefix is /app1 because of the mount
441 // if subApp1 is not mounted, expected url just /users
442 return nil
443 }).Name("get-users")
444 subApp1.Post("/users", func(c Ctx) error {
445 route := c.App().GetRoute("get-users")
446 require.Equal(t, MethodGet, route.Method, "handler: app1.get-users method")
447 require.Equal(t, "/app1/users", route.Path, "handler: app1.get-users path")
448 return nil
449 }).Name("add-user")
450
451 // create sub-app with 2 handlers inside a group:
452 subApp2 := New()
453 app2Grp := subApp2.Group("/users").Name("users.")
454 app2Grp.Get("", emptyHandler).Name("get")
455 app2Grp.Post("", emptyHandler).Name("add")
456
457 // put both sub-apps into root app
458 rootApp := New()
459 _ = rootApp.Use("/app1", subApp1)
460 _ = rootApp.Use("/app2", subApp2)
461
462 rootApp.startupProcess()
463
464 // take route directly from sub-app
465 route := subApp1.GetRoute("get-users")
466 require.Equal(t, MethodGet, route.Method)
467 require.Equal(t, "/users", route.Path)
468
469 route = subApp1.GetRoute("add-user")
470 require.Equal(t, MethodPost, route.Method)
471 require.Equal(t, "/users", route.Path)
472
473 // take route directly from sub-app with group
474 route = subApp2.GetRoute("users.get")
475 require.Equal(t, MethodGet, route.Method)
476 require.Equal(t, "/users", route.Path)
477
478 route = subApp2.GetRoute("users.add")
479 require.Equal(t, MethodPost, route.Method)
480 require.Equal(t, "/users", route.Path)
481
482 // take route from root app (using names of sub-apps)
483 route = rootApp.GetRoute("add-user")
484 require.Equal(t, MethodPost, route.Method)
485 require.Equal(t, "/app1/users", route.Path)
486
487 route = rootApp.GetRoute("users.add")
488 require.Equal(t, MethodPost, route.Method)
489 require.Equal(t, "/app2/users", route.Path)
490

Callers

nothing calls this directly

Calls 11

GetRouteMethod · 0.80
startupProcessMethod · 0.80
TestMethod · 0.80
NewFunction · 0.70
NameMethod · 0.65
GetMethod · 0.65
GetRouteURLMethod · 0.65
PostMethod · 0.65
AppMethod · 0.65
GroupMethod · 0.65
UseMethod · 0.65

Tested by

no test coverage detected