2020-09-13 11:20:11 +02:00
|
|
|
package timeout
|
2020-06-21 14:46:34 +02:00
|
|
|
|
2020-09-13 11:20:11 +02:00
|
|
|
// // go test -run Test_Middleware_Timeout
|
2020-07-04 10:11:23 +02:00
|
|
|
// func Test_Middleware_Timeout(t *testing.T) {
|
2020-09-13 11:20:11 +02:00
|
|
|
// app := fiber.New(fiber.Config{DisableStartupMessage: true})
|
|
|
|
|
|
|
|
// h := New(func(c *fiber.Ctx) error {
|
|
|
|
// sleepTime, _ := time.ParseDuration(c.Params("sleepTime") + "ms")
|
|
|
|
// time.Sleep(sleepTime)
|
|
|
|
// return c.SendString("After " + c.Params("sleepTime") + "ms sleeping")
|
|
|
|
// }, 5*time.Millisecond)
|
2020-07-04 10:11:23 +02:00
|
|
|
// 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")
|
|
|
|
// }
|
2020-07-04 09:09:31 +02:00
|
|
|
|
2020-09-13 11:20:11 +02:00
|
|
|
// // go test -run -v Test_Timeout_Panic
|
|
|
|
// func Test_Timeout_Panic(t *testing.T) {
|
|
|
|
// app := fiber.New(fiber.Config{DisableStartupMessage: true})
|
2020-07-04 10:11:23 +02:00
|
|
|
|
2020-09-13 11:20:11 +02:00
|
|
|
// app.Get("/panic", recover.New(), New(func(c *fiber.Ctx) error {
|
|
|
|
// c.Set("dummy", "this should not be here")
|
|
|
|
// panic("panic in timeout handler")
|
|
|
|
// }, 5*time.Millisecond))
|
2020-07-04 10:11:23 +02:00
|
|
|
|
|
|
|
// 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")
|
|
|
|
|
|
|
|
// body, err := ioutil.ReadAll(resp.Body)
|
|
|
|
// utils.AssertEqual(t, nil, err)
|
|
|
|
// utils.AssertEqual(t, "Request Timeout", string(body))
|
|
|
|
// }
|