@@ -871,10 +871,25 @@ func TestErrorHandling(t *testing.T) {
871871 return aibridge .NewRequestBridge (t .Context (), []aibridge.Provider {aibridge .NewOpenAIProvider (cfg (addr , apiKey ))}, logger , client , srvProxyMgr )
872872 },
873873 responseHandlerFn : func (streaming bool , resp * http.Response ) {
874- body , err := io .ReadAll (resp .Body )
875- require .NoError (t , err )
874+ if streaming {
875+ // Server responds first with 200 OK then starts streaming.
876+ require .Equal (t , http .StatusOK , resp .StatusCode )
876877
877- t .Log (body )
878+ sp := aibridge .NewSSEParser ()
879+ require .NoError (t , sp .Parse (resp .Body ))
880+ // OpenAI sends all events under the same type.
881+ messageEvents := sp .MessageEvents ()
882+ require .NotEmpty (t , messageEvents )
883+
884+ errEvent := sp .MessageEvents ()[len (sp .MessageEvents ())- 2 ] // Last event is termination marker ("[DONE]").
885+ require .NotEmpty (t , errEvent )
886+ require .Contains (t , errEvent .Data , "The server had an error while processing your request. Sorry about that!" )
887+ } else {
888+ require .Equal (t , resp .StatusCode , http .StatusInternalServerError )
889+ body , err := io .ReadAll (resp .Body )
890+ require .NoError (t , err )
891+ require .Contains (t , string (body ), "The server had an error while processing your request. Sorry about that" )
892+ }
878893 },
879894 },
880895 }
0 commit comments