(t *testing.T)
| 222 | } |
| 223 | |
| 224 | func TestRecoveryWithWriterWithCustomRecovery(t *testing.T) { |
| 225 | errBuffer := new(strings.Builder) |
| 226 | buffer := new(strings.Builder) |
| 227 | router := New() |
| 228 | DefaultErrorWriter = buffer |
| 229 | handleRecovery := func(c *Context, err any) { |
| 230 | errBuffer.WriteString(err.(string)) |
| 231 | c.AbortWithStatus(http.StatusBadRequest) |
| 232 | } |
| 233 | router.Use(RecoveryWithWriter(DefaultErrorWriter, handleRecovery)) |
| 234 | router.GET("/recovery", func(_ *Context) { |
| 235 | panic("Oops, Houston, we have a problem") |
| 236 | }) |
| 237 | // RUN |
| 238 | w := PerformRequest(router, http.MethodGet, "/recovery") |
| 239 | // TEST |
| 240 | assert.Equal(t, http.StatusBadRequest, w.Code) |
| 241 | assert.Contains(t, buffer.String(), "panic recovered") |
| 242 | assert.Contains(t, buffer.String(), "Oops, Houston, we have a problem") |
| 243 | assert.Contains(t, buffer.String(), t.Name()) |
| 244 | assert.NotContains(t, buffer.String(), "GET /recovery") |
| 245 | |
| 246 | // Debug mode prints the request |
| 247 | SetMode(DebugMode) |
| 248 | // RUN |
| 249 | w = PerformRequest(router, http.MethodGet, "/recovery") |
| 250 | // TEST |
| 251 | assert.Equal(t, http.StatusBadRequest, w.Code) |
| 252 | assert.Contains(t, buffer.String(), "GET /recovery") |
| 253 | |
| 254 | assert.Equal(t, strings.Repeat("Oops, Houston, we have a problem", 2), errBuffer.String()) |
| 255 | |
| 256 | SetMode(TestMode) |
| 257 | } |
| 258 | |
| 259 | func TestSecureRequestDump(t *testing.T) { |
| 260 | tests := []struct { |
nothing calls this directly
no test coverage detected