package parking import ( "testing" "time" ) func TestCameraStreamSessionPublishesOneSourceToAllSubscribers(t *testing.T) { hub := newCameraStreamHub() session := newCameraStreamSession(hub, cameraStreamConfig{DeviceCode: "CAM-TEST"}) _, first := session.addSubscriber() _, second := session.addSubscriber() frame := []byte("--ffmpeg\r\nContent-Type: image/jpeg\r\n\r\nframe") session.publish(frame) for _, subscriber := range []<-chan []byte{first, second} { select { case received := <-subscriber: if string(received) != string(frame) { t.Fatalf("published frame = %q, want %q", received, frame) } case <-time.After(time.Second): t.Fatal("subscriber did not receive the shared frame") } } }