MCPcopy
hub / github.com/grafana/tempo / TestNewSyncToAsyncResponse

Function TestNewSyncToAsyncResponse

modules/frontend/pipeline/responses_test.go:23–72  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21)
22
23func TestNewSyncToAsyncResponse(t *testing.T) {
24 expected := &http.Response{
25 Header: http.Header{
26 "foo": []string{"bar"},
27 },
28 StatusCode: http.StatusAlreadyReported,
29 Status: http.StatusText(http.StatusEarlyHints),
30 Body: nil,
31 }
32
33 asyncR := NewHTTPToAsyncResponse(expected)
34
35 // confirm we get back what we put in
36 actual, done, err := asyncR.Next(context.Background())
37 require.True(t, done)
38 require.NoError(t, err)
39 require.Equal(t, expected, actual.HTTPResponse())
40
41 // confirm errored context is honored
42 ctx, cancel := context.WithCancel(context.Background())
43 cancel()
44 actual, done, err = asyncR.Next(ctx)
45 require.True(t, done)
46 require.Error(t, err)
47 require.Nil(t, actual)
48
49 // confirm bad request is expected
50 asyncR = NewBadRequest(errors.New("foo"))
51 expected = &http.Response{
52 StatusCode: http.StatusBadRequest,
53 Status: http.StatusText(http.StatusBadRequest),
54 Body: io.NopCloser(strings.NewReader("foo")),
55 }
56 actual, done, err = asyncR.Next(context.Background())
57 require.True(t, done)
58 require.NoError(t, err)
59 require.Equal(t, expected, actual.HTTPResponse())
60
61 // confirm successful response is expected
62 asyncR = NewSuccessfulResponse("foo")
63 expected = &http.Response{
64 StatusCode: http.StatusOK,
65 Status: http.StatusText(http.StatusOK),
66 Body: io.NopCloser(strings.NewReader("foo")),
67 }
68 actual, done, err = asyncR.Next(context.Background())
69 require.True(t, done)
70 require.NoError(t, err)
71 require.Equal(t, expected, actual.HTTPResponse())
72}
73
74func TestAsyncResponseReturnsResponsesInOrder(t *testing.T) {
75 // create a slice of responses and send them through

Callers

nothing calls this directly

Calls 7

NewHTTPToAsyncResponseFunction · 0.85
NewBadRequestFunction · 0.85
NewSuccessfulResponseFunction · 0.85
NextMethod · 0.65
HTTPResponseMethod · 0.65
ErrorMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected