Files
token_thief/proxy/sse_event_test.go
T

34 lines
966 B
Go

package proxy
import "testing"
func TestSSEEventTrackerRejectsEventAfterTerminalEvent(t *testing.T) {
var tracker sseEventTracker
tracker.Write([]byte("data: [DONE]\n\ndata: unexpected\n\n"))
if tracker.Complete() {
t.Fatal("SSE stream with an event after its terminal event must not be complete")
}
}
func TestSSEEventTrackerAcceptsCROnlyEventBoundary(t *testing.T) {
var tracker sseEventTracker
tracker.Write([]byte("data: [DONE]\r\r"))
if !tracker.Complete() {
t.Fatal("terminal SSE event with CR-only boundary should be complete")
}
}
func TestSSEEventTrackerStopsBufferingOverLimit(t *testing.T) {
tracker := newSSEEventTracker(8)
tracker.Write([]byte("data: 123456789"))
if tracker.Complete() {
t.Fatal("overflowed SSE tracker must not report a complete stream")
}
if len(tracker.buf) != 0 || !tracker.overflow {
t.Fatalf("overflow state=%v buffered=%d, want overflow with released buffer", tracker.overflow, len(tracker.buf))
}
}