@@ -59,13 +59,10 @@ func TestSSEServer(t *testing.T) {
59
59
defer sseResp .Body .Close ()
60
60
61
61
// Read the endpoint event
62
- buf := make ([]byte , 1024 )
63
- n , err := sseResp .Body .Read (buf )
62
+ endpointEvent , err := readSeeEvent (sseResp )
64
63
if err != nil {
65
64
t .Fatalf ("Failed to read SSE response: %v" , err )
66
65
}
67
-
68
- endpointEvent := string (buf [:n ])
69
66
if ! strings .Contains (endpointEvent , "event: endpoint" ) {
70
67
t .Fatalf ("Expected endpoint event, got: %s" , endpointEvent )
71
68
}
@@ -107,19 +104,6 @@ func TestSSEServer(t *testing.T) {
107
104
if resp .StatusCode != http .StatusAccepted {
108
105
t .Errorf ("Expected status 202, got %d" , resp .StatusCode )
109
106
}
110
-
111
- // Verify response
112
- var response map [string ]interface {}
113
- if err := json .NewDecoder (resp .Body ).Decode (& response ); err != nil {
114
- t .Fatalf ("Failed to decode response: %v" , err )
115
- }
116
-
117
- if response ["jsonrpc" ] != "2.0" {
118
- t .Errorf ("Expected jsonrpc 2.0, got %v" , response ["jsonrpc" ])
119
- }
120
- if response ["id" ].(float64 ) != 1 {
121
- t .Errorf ("Expected id 1, got %v" , response ["id" ])
122
- }
123
107
})
124
108
125
109
t .Run ("Can handle multiple sessions" , func (t * testing.T ) {
@@ -208,8 +192,17 @@ func TestSSEServer(t *testing.T) {
208
192
}
209
193
defer resp .Body .Close ()
210
194
195
+ endpointEvent , err = readSeeEvent (sseResp )
196
+ if err != nil {
197
+ t .Fatalf ("Failed to read SSE response: %v" , err )
198
+ }
199
+ respFromSee := strings .TrimSpace (
200
+ strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
201
+ )
202
+
203
+ fmt .Printf ("========> %v" , respFromSee )
211
204
var response map [string ]interface {}
212
- if err := json .NewDecoder (resp . Body ).Decode (& response ); err != nil {
205
+ if err := json .NewDecoder (strings . NewReader ( respFromSee ) ).Decode (& response ); err != nil {
213
206
t .Errorf (
214
207
"Session %d: Failed to decode response: %v" ,
215
208
sessionNum ,
@@ -586,13 +579,10 @@ func TestSSEServer(t *testing.T) {
586
579
defer sseResp .Body .Close ()
587
580
588
581
// Read the endpoint event
589
- buf := make ([]byte , 1024 )
590
- n , err := sseResp .Body .Read (buf )
582
+ endpointEvent , err := readSeeEvent (sseResp )
591
583
if err != nil {
592
584
t .Fatalf ("Failed to read SSE response: %v" , err )
593
585
}
594
-
595
- endpointEvent := string (buf [:n ])
596
586
messageURL := strings .TrimSpace (
597
587
strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
598
588
)
@@ -632,8 +622,16 @@ func TestSSEServer(t *testing.T) {
632
622
}
633
623
634
624
// Verify response
625
+ endpointEvent , err = readSeeEvent (sseResp )
626
+ if err != nil {
627
+ t .Fatalf ("Failed to read SSE response: %v" , err )
628
+ }
629
+ respFromSee := strings .TrimSpace (
630
+ strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
631
+ )
632
+
635
633
var response map [string ]interface {}
636
- if err := json .NewDecoder (resp . Body ).Decode (& response ); err != nil {
634
+ if err := json .NewDecoder (strings . NewReader ( respFromSee ) ).Decode (& response ); err != nil {
637
635
t .Fatalf ("Failed to decode response: %v" , err )
638
636
}
639
637
@@ -671,8 +669,17 @@ func TestSSEServer(t *testing.T) {
671
669
}
672
670
defer resp .Body .Close ()
673
671
672
+ endpointEvent , err = readSeeEvent (sseResp )
673
+ if err != nil {
674
+ t .Fatalf ("Failed to read SSE response: %v" , err )
675
+ }
676
+
677
+ respFromSee = strings .TrimSpace (
678
+ strings .Split (strings .Split (endpointEvent , "data: " )[1 ], "\n " )[0 ],
679
+ )
680
+
674
681
response = make (map [string ]interface {})
675
- if err := json .NewDecoder (resp . Body ).Decode (& response ); err != nil {
682
+ if err := json .NewDecoder (strings . NewReader ( respFromSee ) ).Decode (& response ); err != nil {
676
683
t .Fatalf ("Failed to decode response: %v" , err )
677
684
}
678
685
@@ -740,3 +747,12 @@ func TestSSEServer(t *testing.T) {
740
747
}
741
748
})
742
749
}
750
+
751
+ func readSeeEvent (sseResp * http.Response ) (string , error ) {
752
+ buf := make ([]byte , 1024 )
753
+ n , err := sseResp .Body .Read (buf )
754
+ if err != nil {
755
+ return "" , err
756
+ }
757
+ return string (buf [:n ]), nil
758
+ }
0 commit comments