Home / Function/ TestRecoveryWithWriterWithCustomRecovery() — gin Function Reference

TestRecoveryWithWriterWithCustomRecovery() — gin Function Reference

Architecture documentation for the TestRecoveryWithWriterWithCustomRecovery() function in recovery_test.go from the gin codebase.

Entity Profile

Dependency Diagram

graph TD
  df6170bc_3461_dc42_35c6_b9b524e66bd2["TestRecoveryWithWriterWithCustomRecovery()"]
  c9a553a7_05a4_91a7_23b0_924f9f59d021["recovery_test.go"]
  df6170bc_3461_dc42_35c6_b9b524e66bd2 -->|defined in| c9a553a7_05a4_91a7_23b0_924f9f59d021
  style df6170bc_3461_dc42_35c6_b9b524e66bd2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

recovery_test.go lines 224–257

func TestRecoveryWithWriterWithCustomRecovery(t *testing.T) {
	errBuffer := new(strings.Builder)
	buffer := new(strings.Builder)
	router := New()
	DefaultErrorWriter = buffer
	handleRecovery := func(c *Context, err any) {
		errBuffer.WriteString(err.(string))
		c.AbortWithStatus(http.StatusBadRequest)
	}
	router.Use(RecoveryWithWriter(DefaultErrorWriter, handleRecovery))
	router.GET("/recovery", func(_ *Context) {
		panic("Oupps, Houston, we have a problem")
	})
	// RUN
	w := PerformRequest(router, http.MethodGet, "/recovery")
	// TEST
	assert.Equal(t, http.StatusBadRequest, w.Code)
	assert.Contains(t, buffer.String(), "panic recovered")
	assert.Contains(t, buffer.String(), "Oupps, Houston, we have a problem")
	assert.Contains(t, buffer.String(), t.Name())
	assert.NotContains(t, buffer.String(), "GET /recovery")

	// Debug mode prints the request
	SetMode(DebugMode)
	// RUN
	w = PerformRequest(router, http.MethodGet, "/recovery")
	// TEST
	assert.Equal(t, http.StatusBadRequest, w.Code)
	assert.Contains(t, buffer.String(), "GET /recovery")

	assert.Equal(t, strings.Repeat("Oupps, Houston, we have a problem", 2), errBuffer.String())

	SetMode(TestMode)
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does TestRecoveryWithWriterWithCustomRecovery() do?
TestRecoveryWithWriterWithCustomRecovery() is a function in the gin codebase, defined in recovery_test.go.
Where is TestRecoveryWithWriterWithCustomRecovery() defined?
TestRecoveryWithWriterWithCustomRecovery() is defined in recovery_test.go at line 224.

Analyze Your Own Codebase

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

Try Supermodel Free