mirror of
https://github.com/gofiber/fiber.git
synced 2025-02-23 06:43:42 +00:00
64 lines
2.1 KiB
Go
64 lines
2.1 KiB
Go
package middleware
|
|
|
|
// go test -run Test_Middleware_Timeout
|
|
// func Test_Middleware_Timeout(t *testing.T) {
|
|
// app := fiber.New(&fiber.Settings{DisableStartupMessage: true})
|
|
|
|
// h := Timeout(
|
|
// func(c *fiber.Ctx) {
|
|
// sleepTime, _ := time.ParseDuration(c.Params("sleepTime") + "ms")
|
|
// time.Sleep(sleepTime)
|
|
// c.SendString("After " + c.Params("sleepTime") + "ms sleeping")
|
|
// },
|
|
// 5*time.Millisecond,
|
|
// )
|
|
// app.Get("/test/:sleepTime", h)
|
|
|
|
// testTimeout := func(timeoutStr string) {
|
|
// resp, err := app.Test(httptest.NewRequest("GET", "/test/"+timeoutStr, nil))
|
|
// utils.AssertEqual(t, nil, err, "app.Test(req)")
|
|
// utils.AssertEqual(t, fiber.StatusRequestTimeout, resp.StatusCode, "Status code")
|
|
|
|
// body, err := ioutil.ReadAll(resp.Body)
|
|
// utils.AssertEqual(t, nil, err)
|
|
// utils.AssertEqual(t, "Request Timeout", string(body))
|
|
// }
|
|
// testSucces := func(timeoutStr string) {
|
|
// resp, err := app.Test(httptest.NewRequest("GET", "/test/"+timeoutStr, nil))
|
|
// utils.AssertEqual(t, nil, err, "app.Test(req)")
|
|
// utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
|
|
|
|
// body, err := ioutil.ReadAll(resp.Body)
|
|
// utils.AssertEqual(t, nil, err)
|
|
// utils.AssertEqual(t, "After "+timeoutStr+"ms sleeping", string(body))
|
|
// }
|
|
|
|
// testTimeout("15")
|
|
// testSucces("2")
|
|
// testTimeout("30")
|
|
// testSucces("3")
|
|
// }
|
|
|
|
// go test -run Test_Middleware_Timeout_Panic
|
|
// func Test_Middleware_Timeout_Panic(t *testing.T) {
|
|
// app := fiber.New(&fiber.Settings{DisableStartupMessage: true})
|
|
|
|
// h := Timeout(
|
|
// func(c *fiber.Ctx) {
|
|
// c.Set("dummy", "this should not be here")
|
|
// panic("panic in timeout handler")
|
|
// },
|
|
// 5*time.Millisecond,
|
|
// )
|
|
// app.Get("/panic", Recover(), h)
|
|
|
|
// resp, err := app.Test(httptest.NewRequest("GET", "/panic", nil))
|
|
// utils.AssertEqual(t, nil, err, "app.Test(req)")
|
|
// utils.AssertEqual(t, fiber.StatusRequestTimeout, resp.StatusCode, "Status code")
|
|
// utils.AssertEqual(t, "", resp.Header.Get("dummy"))
|
|
|
|
// body, err := ioutil.ReadAll(resp.Body)
|
|
// utils.AssertEqual(t, nil, err)
|
|
// utils.AssertEqual(t, "Request Timeout", string(body))
|
|
// }
|