Files
grafana/pkg/tsdb/influxdb/influxql/converter/converter_test.go
Will Browne 5694d6371e Plugins: Upgrade github.com/grafana/grafana-plugin-sdk-go v0.283.0 => v0.284.0 (#114400)
* upgraded github.com/grafana/grafana-plugin-sdk-go v0.283.0 => v0.284.0

* make update-workspace

* apply fixes

* nolint for FieldTypeNullableJSON instead

* fmt

* fix lint issues
2025-11-25 15:46:07 +00:00

83 lines
3.1 KiB
Go

package converter
import (
"testing"
"github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/stretchr/testify/assert"
)
func TestMaybeFixValueFieldType(t *testing.T) {
tests := []struct {
name string
valueFields data.Fields
inputType data.FieldType
colIdx int
expectedType data.FieldType
}{
{
name: "should do nothing if both are the same type (bool)",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableBool, 0)},
inputType: data.FieldTypeNullableBool,
colIdx: 0,
expectedType: data.FieldTypeNullableBool,
},
{
name: "should do nothing if both are the same type (string)",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableString, 0)},
inputType: data.FieldTypeNullableString,
colIdx: 0,
expectedType: data.FieldTypeNullableString,
},
{
name: "should do nothing if both are the same type (float64)",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, 0)},
inputType: data.FieldTypeNullableFloat64,
colIdx: 0,
expectedType: data.FieldTypeNullableFloat64,
},
{
name: "should return nullableJson if both are nullableJson",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableJSON, 0)}, //nolint:staticcheck
inputType: data.FieldTypeNullableJSON, //nolint:staticcheck
colIdx: 0,
expectedType: data.FieldTypeNullableJSON, //nolint:staticcheck
},
{
name: "should return nullableString if valueField is nullableJson and input is nullableString",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableJSON, 0)}, //nolint:staticcheck
inputType: data.FieldTypeNullableString,
colIdx: 0,
expectedType: data.FieldTypeNullableString,
},
{
name: "should return nullableBool if valueField is nullableJson and input is nullableBool",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableJSON, 0)}, //nolint:staticcheck
inputType: data.FieldTypeNullableBool,
colIdx: 0,
expectedType: data.FieldTypeNullableBool,
},
{
name: "should return nullableFloat64 if valueField is nullableJson and input is nullableFloat64",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableJSON, 0)}, //nolint:staticcheck
inputType: data.FieldTypeNullableFloat64,
colIdx: 0,
expectedType: data.FieldTypeNullableFloat64,
},
{
name: "should do nothing if valueField is different than nullableJson and input is anything but nullableJson",
valueFields: data.Fields{data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, 0)},
inputType: data.FieldTypeNullableString,
colIdx: 0,
expectedType: data.FieldTypeNullableFloat64,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
maybeFixValueFieldType(tt.valueFields, tt.inputType, tt.colIdx)
assert.Equal(t, tt.valueFields[tt.colIdx].Type(), tt.expectedType)
})
}
}