Home / Function/ Test_Ctx_OverrideParam() — fiber Function Reference

Test_Ctx_OverrideParam() — fiber Function Reference

Architecture documentation for the Test_Ctx_OverrideParam() function in ctx_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  0ceb3d7e_4325_1cd4_366a_9fc87a2dd449["Test_Ctx_OverrideParam()"]
  7b3d4933_5ae3_f84d_ff6d_0cb34e268026["ctx_test.go"]
  0ceb3d7e_4325_1cd4_366a_9fc87a2dd449 -->|defined in| 7b3d4933_5ae3_f84d_ff6d_0cb34e268026
  style 0ceb3d7e_4325_1cd4_366a_9fc87a2dd449 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

ctx_test.go lines 8095–8250

func Test_Ctx_OverrideParam(t *testing.T) {
	t.Parallel()
	t.Run("route_params", func(t *testing.T) {
		// a basic request to check if OverrideParam functions correctly on different scenarios
		// - Does it change an existing param (it should)
		// - Does it ignore a non-existing param (it should)
		t.Parallel()
		app := New()
		app.Get("/user/:name/:id", func(c Ctx) error {
			c.OverrideParam("name", "overridden")
			c.OverrideParam("nonexistent", "ignored")
			require.Equal(t, "overridden", c.Params("name"))
			require.Equal(t, "123", c.Params("id"))
			require.Empty(t, c.Params("nonexistent"))
			require.Equal(t, []string{"name", "id"}, c.Route().Params)

			return c.JSON(map[string]any{
				"name": c.Params("name"),
				"id":   c.Params("id"),
				"all":  c.Route().Params,
			})
		})

		req, err := http.NewRequest(http.MethodGet, "/user/original/123", http.NoBody)
		require.NoError(t, err)
		resp, err := app.Test(req)
		require.NoError(t, err)
		defer func() { require.NoError(t, resp.Body.Close()) }()
		require.Equal(t, StatusOK, resp.StatusCode)
	})

	t.Run("plus_wildcard_params", func(t *testing.T) {
		t.Parallel()
		app := New()
		app.Get("/files+/+",
			func(c Ctx) error {
				c.OverrideParam("+", "changed")
				c.OverrideParam("+2", "changed2")

				require.Equal(t, "changed", c.Params("+"))
				require.Equal(t, "changed2", c.Params("+2"))
				return nil
			},
		)

		req, err := http.NewRequest(http.MethodGet, "/filesoriginal/original2", http.NoBody)
		require.NoError(t, err)
		resp, err := app.Test(req)
		require.NoError(t, err)
		defer func() { require.NoError(t, resp.Body.Close()) }()
		require.Equal(t, StatusOK, resp.StatusCode)
	})

	t.Run("wildcard_params", func(t *testing.T) {
		t.Parallel()
		app := New()
		app.Get("/files/*", func(c Ctx) error {
			c.OverrideParam("*", "changed")
			require.Equal(t, "changed", c.Params("*"))
			return nil
		})
		req, err := http.NewRequest(http.MethodGet, "/files/testing", http.NoBody)
		require.NoError(t, err)
		resp, err := app.Test(req)
		require.NoError(t, err)
		defer func() { require.NoError(t, resp.Body.Close()) }()
		require.Equal(t, StatusOK, resp.StatusCode)
	})

	t.Run("multi_wildcard_params", func(t *testing.T) {
		t.Parallel()
		app := New()
		app.Get("/files/*/*", func(c Ctx) error {
			c.OverrideParam("*", "changed")
			c.OverrideParam("*2", "changed2")
			require.Equal(t, "changed", c.Params("*"))
			require.Equal(t, "changed2", c.Params("*2"))
			return nil
		})
		req, err := http.NewRequest(http.MethodGet, "/files/testing/testing", http.NoBody)
		require.NoError(t, err)

Domain

Subdomains

Defined In

Frequently Asked Questions

What does Test_Ctx_OverrideParam() do?
Test_Ctx_OverrideParam() is a function in the fiber codebase, defined in ctx_test.go.
Where is Test_Ctx_OverrideParam() defined?
Test_Ctx_OverrideParam() is defined in ctx_test.go at line 8095.

Analyze Your Own Codebase

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

Try Supermodel Free