mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 11:30:15 +00:00
42 lines
859 B
Go
42 lines
859 B
Go
package updates
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
type flushRecorder struct {
|
|
*httptest.ResponseRecorder
|
|
}
|
|
|
|
func (f *flushRecorder) Flush() {}
|
|
|
|
func TestManagerSSEHelpers(t *testing.T) {
|
|
m := &Manager{
|
|
sseBroadcast: NewSSEBroadcaster(),
|
|
}
|
|
|
|
if m.GetSSEBroadcaster() == nil {
|
|
t.Fatal("expected non-nil SSE broadcaster")
|
|
}
|
|
|
|
rec := &flushRecorder{ResponseRecorder: httptest.NewRecorder()}
|
|
client := m.AddSSEClient(rec, "client-1")
|
|
if client == nil {
|
|
t.Fatal("expected AddSSEClient to return client")
|
|
}
|
|
|
|
status, ts := m.GetSSECachedStatus()
|
|
if status.Status == "" {
|
|
t.Fatalf("expected cached status, got empty")
|
|
}
|
|
if ts.IsZero() {
|
|
t.Fatalf("expected cached status time to be set")
|
|
}
|
|
|
|
m.RemoveSSEClient("client-1")
|
|
|
|
// Give background goroutines a moment to handle send and removal.
|
|
time.Sleep(10 * time.Millisecond)
|
|
}
|