Home / Function/ Test_Mount_Route_Names() — fiber Function Reference

Test_Mount_Route_Names() — fiber Function Reference

Architecture documentation for the Test_Mount_Route_Names() function in mount_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  c0941312_94bc_5377_01f2_c4210ec4c46c["Test_Mount_Route_Names()"]
  dbd7cc10_1955_3f67_b103_5ae841223af0["mount_test.go"]
  c0941312_94bc_5377_01f2_c4210ec4c46c -->|defined in| dbd7cc10_1955_3f67_b103_5ae841223af0
  style c0941312_94bc_5377_01f2_c4210ec4c46c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

mount_test.go lines 395–466

func Test_Mount_Route_Names(t *testing.T) {
	t.Parallel()
	// create sub-app with 2 handlers:
	subApp1 := New()
	subApp1.Get("/users", func(c Ctx) error {
		url, err := c.GetRouteURL("add-user", Map{})
		require.NoError(t, err)
		require.Equal(t, "/app1/users", url, "handler: app1.add-user") // the prefix is /app1 because of the mount
		// if subApp1 is not mounted, expected url just /users
		return nil
	}).Name("get-users")
	subApp1.Post("/users", func(c Ctx) error {
		route := c.App().GetRoute("get-users")
		require.Equal(t, MethodGet, route.Method, "handler: app1.get-users method")
		require.Equal(t, "/app1/users", route.Path, "handler: app1.get-users path")
		return nil
	}).Name("add-user")

	// create sub-app with 2 handlers inside a group:
	subApp2 := New()
	app2Grp := subApp2.Group("/users").Name("users.")
	app2Grp.Get("", emptyHandler).Name("get")
	app2Grp.Post("", emptyHandler).Name("add")

	// put both sub-apps into root app
	rootApp := New()
	_ = rootApp.Use("/app1", subApp1)
	_ = rootApp.Use("/app2", subApp2)

	rootApp.startupProcess()

	// take route directly from sub-app
	route := subApp1.GetRoute("get-users")
	require.Equal(t, MethodGet, route.Method)
	require.Equal(t, "/users", route.Path)

	route = subApp1.GetRoute("add-user")
	require.Equal(t, MethodPost, route.Method)
	require.Equal(t, "/users", route.Path)

	// take route directly from sub-app with group
	route = subApp2.GetRoute("users.get")
	require.Equal(t, MethodGet, route.Method)
	require.Equal(t, "/users", route.Path)

	route = subApp2.GetRoute("users.add")
	require.Equal(t, MethodPost, route.Method)
	require.Equal(t, "/users", route.Path)

	// take route from root app (using names of sub-apps)
	route = rootApp.GetRoute("add-user")
	require.Equal(t, MethodPost, route.Method)
	require.Equal(t, "/app1/users", route.Path)

	route = rootApp.GetRoute("users.add")
	require.Equal(t, MethodPost, route.Method)
	require.Equal(t, "/app2/users", route.Path)

	// GetRouteURL inside handler
	req := httptest.NewRequest(MethodGet, "/app1/users", http.NoBody)
	resp, err := rootApp.Test(req)

	require.NoError(t, err, "app.Test(req)")
	require.Equal(t, StatusOK, resp.StatusCode, "Status code")

	// ctx.App().GetRoute() inside handler
	req = httptest.NewRequest(MethodPost, "/app1/users", http.NoBody)
	resp, err = rootApp.Test(req)

	require.NoError(t, err, "app.Test(req)")
	require.Equal(t, StatusOK, resp.StatusCode, "Status code")
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does Test_Mount_Route_Names() do?
Test_Mount_Route_Names() is a function in the fiber codebase, defined in mount_test.go.
Where is Test_Mount_Route_Names() defined?
Test_Mount_Route_Names() is defined in mount_test.go at line 395.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free