MCPcopy
hub / github.com/keploy/keploy / TestSimulateHTTP_SSEStreamMismatch_317

Function TestSimulateHTTP_SSEStreamMismatch_317

pkg/util_test.go:322–399  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

320}
321
322func TestSimulateHTTP_SSEStreamMismatch_317(t *testing.T) {
323 ctx := context.Background()
324 logger := zap.NewNop()
325
326 server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
327 w.Header().Set("Content-Type", "text/event-stream")
328 flusher, ok := w.(http.Flusher)
329 require.True(t, ok, "server response writer must support flushing")
330
331 _, _ = w.Write([]byte("id:1\nevent:update\ndata:{\"value\":1}\n\n"))
332 flusher.Flush()
333 _, _ = w.Write([]byte("id:2\nevent:update\ndata:{\"value\":999}\n\n"))
334 flusher.Flush()
335 }))
336 defer server.Close()
337
338 tc := &models.TestCase{
339 Name: "sse-mismatch",
340 HTTPReq: models.HTTPReq{
341 Method: "GET",
342 URL: server.URL,
343 Header: map[string]string{
344 "Accept": "text/event-stream",
345 },
346 },
347 HTTPResp: models.HTTPResp{
348 Header: map[string]string{
349 "Content-Type": "text/event-stream",
350 },
351 Body: strings.Join([]string{
352 "id:1",
353 "event:update",
354 "data:{\"value\":1}",
355 "",
356 "id:2",
357 "event:update",
358 "data:{\"value\":2}",
359 "",
360 }, "\n"),
361 StreamBody: []models.HTTPStreamChunk{
362 {
363 Data: []models.HTTPStreamDataField{
364 {Key: "id", Value: "1"},
365 {Key: "event", Value: "update"},
366 {Key: "data", Value: `{"value":1}`},
367 },
368 },
369 {
370 Data: []models.HTTPStreamDataField{
371 {Key: "id", Value: "2"},
372 {Key: "event", Value: "update"},
373 {Key: "data", Value: `{"value":2}`},
374 },
375 },
376 },
377 },
378 }
379

Callers

nothing calls this directly

Calls 6

SimulateHTTPStreamingFunction · 0.85
CompareHTTPStreamFunction · 0.85
FlushMethod · 0.80
WriteMethod · 0.65
CloseMethod · 0.65
SetMethod · 0.45

Tested by

no test coverage detected