Live: pure websocket push endpoint (#33339)

This commit is contained in:
Alexander Emelin
2021-04-26 13:17:49 +03:00
committed by GitHub
parent 7f53dfad88
commit 7501a2deb6
9 changed files with 274 additions and 33 deletions
@@ -0,0 +1,42 @@
package managedstream
import (
"testing"
"github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/stretchr/testify/require"
)
var noopPublisher = func(p string, b []byte) error {
return nil
}
func TestNewManagedStream(t *testing.T) {
c := NewManagedStream("a", noopPublisher)
require.NotNil(t, c)
}
func TestManagedStream_GetLastPacket(t *testing.T) {
c := NewManagedStream("a", noopPublisher)
_, ok := c.getLastPacket("test")
require.False(t, ok)
err := c.Push("test", data.NewFrame("hello"), false)
require.NoError(t, err)
_, ok = c.getLastPacket("test")
require.NoError(t, err)
require.False(t, ok)
}
func TestManagedStream_GetLastPacket_StableSchema(t *testing.T) {
c := NewManagedStream("a", noopPublisher)
_, ok := c.getLastPacket("test")
require.False(t, ok)
err := c.Push("test", data.NewFrame("hello"), true)
require.NoError(t, err)
s, ok := c.getLastPacket("test")
require.NoError(t, err)
require.True(t, ok)
require.Equal(t, `{"schema":{"name":"hello","fields":[]},"data":{"values":[]}}`, string(s))
}