Storage: add support for snapshots, dataframes, and raw json objects (#57934)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package dataframe
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDataFrameSummary(t *testing.T) {
|
||||
df := data.NewFrame("http_requests_total",
|
||||
data.NewField("timestamp", nil, []time.Time{time.Now(), time.Now(), time.Now()}).SetConfig(&data.FieldConfig{
|
||||
DisplayName: "A time Column.",
|
||||
}),
|
||||
data.NewField("value", data.Labels{"service": "auth"}, []float64{1.0, 2.0, 3.0}),
|
||||
data.NewField("category", data.Labels{"service": "auth"}, []string{"foo", "bar", "test"}),
|
||||
data.NewField("valid", data.Labels{"service": "auth"}, []bool{true, false, true}),
|
||||
)
|
||||
|
||||
in, err := data.FrameToJSON(df, data.IncludeAll)
|
||||
require.NoError(t, err)
|
||||
|
||||
summary, out, err := GetObjectSummaryBuilder()(context.Background(), "somthing", in)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, in, out) // same json
|
||||
|
||||
asjson, err := json.MarshalIndent(summary, "", " ")
|
||||
// fmt.Printf(string(asjson))
|
||||
require.NoError(t, err)
|
||||
require.JSONEq(t, `{
|
||||
"uid": "somthing",
|
||||
"kind": "frame",
|
||||
"name": "http_requests_total",
|
||||
"fields": {
|
||||
"cols": 4,
|
||||
"rows": 3
|
||||
}
|
||||
}`, string(asjson))
|
||||
}
|
||||
Reference in New Issue
Block a user