Skip to content

Commit 8b575bc

Browse files
author
Steve Ayers
committed
Fix server stream tests
1 parent 7172e79 commit 8b575bc

File tree

1 file changed

+47
-13
lines changed

1 file changed

+47
-13
lines changed

connect_ext_test.go

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,32 @@ func TestCallInfo(t *testing.T) {
9292
t.Run("server_stream", func(t *testing.T) {
9393
ctx, callInfo := connect.NewOutgoingContext(context.Background())
9494
callInfo.RequestHeader().Set(clientHeader, headerValue)
95+
96+
val := 3
9597
stream, err := client.CountUp(ctx, &pingv1.CountUpRequest{
96-
Number: 1,
98+
Number: int64(val),
9799
})
98100
assert.Nil(t, err)
99-
assert.True(t, stream.Receive())
101+
// Receive expected messages
102+
for idx := range val {
103+
expected := int64(idx + 1)
104+
assert.True(t, stream.Receive())
105+
assert.Nil(t, stream.Err())
106+
msg := stream.Msg()
107+
assert.NotNil(t, msg)
108+
assert.Equal(t, msg.GetNumber(), expected)
109+
}
110+
111+
// Stream should be done. Expect false on receive and close stream
112+
assert.False(t, stream.Receive())
100113
assert.Nil(t, stream.Err())
101-
msg := stream.Msg()
102-
assert.NotNil(t, msg)
103-
assert.Equal(t, msg.GetNumber(), 1)
104114
assert.Nil(t, stream.Close())
105115
assert.Equal(t, callInfo.Spec().StreamType, connect.StreamTypeServer)
106116
assert.Equal(t, callInfo.Spec().Procedure, pingv1connect.PingServiceCountUpProcedure)
107117
assert.True(t, callInfo.Spec().IsClient)
108118
assert.Equal(t, callInfo.Peer().Addr, httptest.DefaultRemoteAddr)
109-
assert.Equal(t, callInfo.ResponseHeader().Values(handlerHeader), []string{headerValue})
119+
assert.Equal(t, stream.ResponseHeader().Values(handlerHeader), []string{headerValue})
120+
assert.Equal(t, stream.ResponseTrailer().Values(handlerTrailer), []string{trailerValue})
110121
})
111122
})
112123
t.Run("generics_api", func(t *testing.T) {
@@ -141,21 +152,44 @@ func TestCallInfo(t *testing.T) {
141152
assert.Equal(t, callInfo.ResponseTrailer().Values(handlerTrailer), []string{trailerValue})
142153
})
143154
t.Run("server_stream", func(t *testing.T) {
155+
ctx, callInfo := connect.NewOutgoingContext(context.Background())
156+
callInfo.RequestHeader().Set(clientHeader, headerValue)
157+
158+
val := 3
144159
req := connect.NewRequest(&pingv1.CountUpRequest{
145-
Number: 1,
160+
Number: int64(val),
146161
})
147-
req.Header().Set(clientHeader, headerValue)
148-
ctx, callInfo := connect.NewOutgoingContext(context.Background())
149162
stream, err := client.CountUp(ctx, req)
150163
assert.Nil(t, err)
151-
assert.True(t, stream.Receive())
164+
// Receive expected messages
165+
for idx := range val {
166+
expected := int64(idx + 1)
167+
assert.True(t, stream.Receive())
168+
assert.Nil(t, stream.Err())
169+
msg := stream.Msg()
170+
assert.NotNil(t, msg)
171+
assert.Equal(t, msg.GetNumber(), expected)
172+
}
173+
174+
// Stream should be done. Expect false on receive and close stream
175+
assert.False(t, stream.Receive())
152176
assert.Nil(t, stream.Err())
153-
msg := stream.Msg()
154-
assert.NotNil(t, msg)
155-
assert.Equal(t, msg.GetNumber(), 1)
156177
assert.Nil(t, stream.Close())
178+
// Assert values on request and stream
179+
assert.Equal(t, req.Spec().StreamType, connect.StreamTypeServer)
180+
assert.Equal(t, req.Spec().Procedure, pingv1connect.PingServiceCountUpProcedure)
181+
assert.True(t, req.Spec().IsClient)
182+
assert.Equal(t, req.Peer().Addr, httptest.DefaultRemoteAddr)
157183
assert.Equal(t, stream.ResponseHeader().Values(handlerHeader), []string{headerValue})
184+
assert.Equal(t, stream.ResponseTrailer().Values(handlerTrailer), []string{trailerValue})
185+
186+
// Assert the same values are in the call info
187+
assert.Equal(t, callInfo.Spec().StreamType, req.Spec().StreamType)
188+
assert.Equal(t, callInfo.Spec().Procedure, req.Spec().Procedure)
189+
assert.True(t, callInfo.Spec().IsClient)
190+
assert.Equal(t, callInfo.Peer().Addr, req.Peer().Addr)
158191
assert.Equal(t, callInfo.ResponseHeader().Values(handlerHeader), []string{headerValue})
192+
assert.Equal(t, callInfo.ResponseTrailer().Values(handlerTrailer), []string{trailerValue})
159193
})
160194
})
161195
}

0 commit comments

Comments
 (0)