@@ -4,6 +4,7 @@ import com.openai.core.http.Headers
4
4
import com.openai.core.http.HttpResponse
5
5
import com.openai.core.http.SseMessage
6
6
import com.openai.core.jsonMapper
7
+ import com.openai.errors.OpenAIException
7
8
import java.io.ByteArrayInputStream
8
9
import java.io.InputStream
9
10
import java.nio.charset.StandardCharsets
@@ -21,6 +22,25 @@ class SseHandlerTest {
21
22
internal val expectedMessages : List <SseMessage >? = null ,
22
23
internal val expectedException : Exception ? = null
23
24
) {
25
+ DATA_MISSING_EVENT (
26
+ buildString {
27
+ append(" data: {\" foo\" :true}\n " )
28
+ append(" \n " )
29
+ },
30
+ listOf (sseMessageBuilder().data(" {\" foo\" :true}" ).build())
31
+ ),
32
+ MULTIPLE_DATA_MISSING_EVENT (
33
+ buildString {
34
+ append(" data: {\" foo\" :true}\n " )
35
+ append(" \n " )
36
+ append(" data: {\" bar\" :false}\n " )
37
+ append(" \n " )
38
+ },
39
+ listOf (
40
+ sseMessageBuilder().data(" {\" foo\" :true}" ).build(),
41
+ sseMessageBuilder().data(" {\" bar\" :false}" ).build()
42
+ )
43
+ ),
24
44
DATA_JSON_ESCAPED_DOUBLE_NEW_LINE (
25
45
buildString {
26
46
append(" data: {\n " )
@@ -60,6 +80,27 @@ class SseHandlerTest {
60
80
append(" \n " )
61
81
},
62
82
listOf (sseMessageBuilder().data(" {\" content\" :\" известни\" }" ).build())
83
+ ),
84
+ STRING_ERROR_PROPERTY (
85
+ buildString {
86
+ append(" data: {\" error\" :\" ERROR!\" }\n " )
87
+ append(" \n " )
88
+ },
89
+ expectedException = OpenAIException (" ERROR!" )
90
+ ),
91
+ ERROR_PROPERTY_WITH_MESSAGE (
92
+ buildString {
93
+ append(" data: {\" error\" :{\" message\" :\" ERROR!\" }}\n " )
94
+ append(" \n " )
95
+ },
96
+ expectedException = OpenAIException (" ERROR!" )
97
+ ),
98
+ ERROR_PROPERTY_MALFORMED (
99
+ buildString {
100
+ append(" data: {\" error\" :42}\n " )
101
+ append(" \n " )
102
+ },
103
+ expectedException = OpenAIException (" An error occurred during streaming" )
63
104
)
64
105
}
65
106
0 commit comments