(t *testing.T)
| 303 | } |
| 304 | |
| 305 | func TestCacheStorageDeleteError(t *testing.T) { |
| 306 | t.Parallel() |
| 307 | |
| 308 | storage := newFailingCacheStorage() |
| 309 | storage.errs["del|GET|/|q=|h=accept:|accept-encoding:|accept-language:"] = errors.New("boom") |
| 310 | |
| 311 | // Use an obviously expired timestamp without relying on time-based conversions |
| 312 | expired := &item{exp: 1} |
| 313 | raw, err := expired.MarshalMsg(nil) |
| 314 | require.NoError(t, err) |
| 315 | |
| 316 | storage.data["GET|/|q=|h=accept:|accept-encoding:|accept-language:"] = raw |
| 317 | |
| 318 | var captured error |
| 319 | app := fiber.New(fiber.Config{ |
| 320 | ErrorHandler: func(c fiber.Ctx, err error) error { |
| 321 | captured = err |
| 322 | return c.Status(fiber.StatusInternalServerError).SendString("storage failure") |
| 323 | }, |
| 324 | }) |
| 325 | |
| 326 | app.Use(New(Config{Storage: storage, Expiration: time.Second})) |
| 327 | app.Get("/", func(c fiber.Ctx) error { |
| 328 | return c.SendString("ok") |
| 329 | }) |
| 330 | |
| 331 | resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody)) |
| 332 | require.NoError(t, err) |
| 333 | require.Equal(t, fiber.StatusInternalServerError, resp.StatusCode) |
| 334 | require.Error(t, captured) |
| 335 | require.ErrorContains(t, captured, "cache: failed to delete expired key") |
| 336 | } |
| 337 | |
| 338 | type contextKey string |
| 339 |
nothing calls this directly
no test coverage detected