@@ -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