| 259 | } |
| 260 | |
| 261 | func Test_SSE_NewWritesHeartbeat(t *testing.T) { |
| 262 | t.Parallel() |
| 263 | |
| 264 | app := fiber.New() |
| 265 | app.Get("/events", New(Config{ |
| 266 | HeartbeatInterval: 5 * time.Millisecond, |
| 267 | Handler: func(_ fiber.Ctx, stream *Stream) error { |
| 268 | select { |
| 269 | case <-time.After(150 * time.Millisecond): |
| 270 | return nil |
| 271 | case <-stream.Done(): |
| 272 | return stream.Err() |
| 273 | } |
| 274 | }, |
| 275 | })) |
| 276 | |
| 277 | resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/events", http.NoBody)) |
| 278 | require.NoError(t, err) |
| 279 | body, err := io.ReadAll(resp.Body) |
| 280 | require.NoError(t, err) |
| 281 | require.Contains(t, string(body), ":\n\n") |
| 282 | } |
| 283 | |
| 284 | func Test_SSE_OnCloseReceivesNilAfterNormalClose(t *testing.T) { |
| 285 | t.Parallel() |