@@ -61,13 +61,10 @@ func TestSSEServer(t *testing.T) {
61
61
defer sseResp .Body .Close ()
62
62
63
63
// Read the endpoint event
64
- buf := make ([]byte , 1024 )
65
- n , err := sseResp .Body .Read (buf )
64
+ endpointEvent , err := readSeeEvent (sseResp )
66
65
if err != nil {
67
66
t .Fatalf ("Failed to read SSE response: %v" , err )
68
67
}
69
-
70
- endpointEvent := string (buf [:n ])
71
68
if ! strings .Contains (endpointEvent , "event: endpoint" ) {
72
69
t .Fatalf ("Expected endpoint event, got: %s" , endpointEvent )
73
70
}
@@ -109,19 +106,6 @@ func TestSSEServer(t *testing.T) {
109
106
if resp .StatusCode != http .StatusAccepted {
110
107
t .Errorf ("Expected status 202, got %d" , resp .StatusCode )
111
108
}
112
-
113
- // Verify response
114
- var response map [string ]interface {}
115
- if err := json .NewDecoder (resp .Body ).Decode (& response ); err != nil {
116
- t .Fatalf ("Failed to decode response: %v" , err )
117
- }
118
-
119
- if response ["jsonrpc" ] != "2.0" {
120
- t .Errorf ("Expected jsonrpc 2.0, got %v" , response ["jsonrpc" ])
121
- }
122
- if response ["id" ].(float64 ) != 1 {
123
- t .Errorf ("Expected id 1, got %v" , response ["id" ])
124
- }
125
109
})
126
110
127
111
t .Run ("Can handle multiple sessions" , func (t * testing.T ) {
@@ -210,8 +194,17 @@ func TestSSEServer(t *testing.T) {
210
194
}
211
195
defer resp .Body .Close ()
212
196
197
+ endpointEvent , err = readSeeEvent (sseResp )
198
+ if err != nil {
199
+ t .Fatalf ("Failed to read SSE response: %v" , err )
200
+ }
201
+ respFromSee := strings .TrimSpace (
202
+ strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
203
+ )
204
+
205
+ fmt .Printf ("========> %v" , respFromSee )
213
206
var response map [string ]interface {}
214
- if err := json .NewDecoder (resp . Body ).Decode (& response ); err != nil {
207
+ if err := json .NewDecoder (strings . NewReader ( respFromSee ) ).Decode (& response ); err != nil {
215
208
t .Errorf (
216
209
"Session %d: Failed to decode response: %v" ,
217
210
sessionNum ,
@@ -588,13 +581,10 @@ func TestSSEServer(t *testing.T) {
588
581
defer sseResp .Body .Close ()
589
582
590
583
// Read the endpoint event
591
- buf := make ([]byte , 1024 )
592
- n , err := sseResp .Body .Read (buf )
584
+ endpointEvent , err := readSeeEvent (sseResp )
593
585
if err != nil {
594
586
t .Fatalf ("Failed to read SSE response: %v" , err )
595
587
}
596
-
597
- endpointEvent := string (buf [:n ])
598
588
messageURL := strings .TrimSpace (
599
589
strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
600
590
)
@@ -634,8 +624,16 @@ func TestSSEServer(t *testing.T) {
634
624
}
635
625
636
626
// Verify response
627
+ endpointEvent , err = readSeeEvent (sseResp )
628
+ if err != nil {
629
+ t .Fatalf ("Failed to read SSE response: %v" , err )
630
+ }
631
+ respFromSee := strings .TrimSpace (
632
+ strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
633
+ )
634
+
637
635
var response map [string ]interface {}
638
- if err := json .NewDecoder (resp . Body ).Decode (& response ); err != nil {
636
+ if err := json .NewDecoder (strings . NewReader ( respFromSee ) ).Decode (& response ); err != nil {
639
637
t .Fatalf ("Failed to decode response: %v" , err )
640
638
}
641
639
@@ -673,8 +671,17 @@ func TestSSEServer(t *testing.T) {
673
671
}
674
672
defer resp .Body .Close ()
675
673
674
+ endpointEvent , err = readSeeEvent (sseResp )
675
+ if err != nil {
676
+ t .Fatalf ("Failed to read SSE response: %v" , err )
677
+ }
678
+
679
+ respFromSee = strings .TrimSpace (
680
+ strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
681
+ )
682
+
676
683
response = make (map [string ]interface {})
677
- if err := json .NewDecoder (resp . Body ).Decode (& response ); err != nil {
684
+ if err := json .NewDecoder (strings . NewReader ( respFromSee ) ).Decode (& response ); err != nil {
678
685
t .Fatalf ("Failed to decode response: %v" , err )
679
686
}
680
687
@@ -855,3 +862,12 @@ func TestSSEServer(t *testing.T) {
855
862
}
856
863
})
857
864
}
865
+
866
+ func readSeeEvent (sseResp * http.Response ) (string , error ) {
867
+ buf := make ([]byte , 1024 )
868
+ n , err := sseResp .Body .Read (buf )
869
+ if err != nil {
870
+ return "" , err
871
+ }
872
+ return string (buf [:n ]), nil
873
+ }
0 commit comments