Files
grafana/pkg/tsdb/loki/streaming_test.go
Ivana Huckova aea7bbfec8 Loki: Decouple some of backend dependencies on grafana (#106788)
* Remove backend dependencies on core

* Remove .golangci.yml changes

* make update-workspace
2025-06-19 14:18:23 +02:00

61 lines
1.8 KiB
Go

package loki
import (
"context"
"testing"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/backend/datasource"
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
"github.com/grafana/grafana-plugin-sdk-go/backend/tracing"
"github.com/grafana/grafana-plugin-sdk-go/experimental/featuretoggles"
"github.com/stretchr/testify/require"
)
func TestSubscribeStream(t *testing.T) {
// Create a service instance with required dependencies
service := &Service{
im: datasource.NewInstanceManager(newInstanceSettings(httpclient.NewProvider())),
tracer: tracing.DefaultTracer(),
logger: backend.NewLoggerWith("logger", "loki test"),
}
// Create a test request
req := &backend.SubscribeStreamRequest{
PluginContext: backend.PluginContext{
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{
ID: 1,
UID: "test",
Type: "loki",
URL: "http://localhost:3100",
},
},
Path: "tail/test",
Data: []byte(`{"expr": "test"}`),
}
t.Run("when feature toggle is disabled", func(t *testing.T) {
// Create a context without the feature toggle enabled
ctx := context.Background()
resp, err := service.SubscribeStream(ctx, req)
require.Error(t, err)
require.Equal(t, "streaming is not supported", err.Error())
require.Equal(t, backend.SubscribeStreamStatusPermissionDenied, resp.Status)
})
t.Run("when feature toggle is enabled", func(t *testing.T) {
// Create a context with the feature toggle enabled
cfg := backend.NewGrafanaCfg(map[string]string{
featuretoggles.EnabledFeatures: flagLokiExperimentalStreaming,
})
ctx := backend.WithGrafanaConfig(context.Background(), cfg)
resp, err := service.SubscribeStream(ctx, req)
require.NoError(t, err)
require.Equal(t, backend.SubscribeStreamStatusOK, resp.Status)
})
}