mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 05:12:36 +08:00
Alerting: Fix mathexp.NoData cannot be reduced (#55347)
This commit fixes a bug where queries from datasources such as InfluxDB that returned no data would not create a DatasourceNoData alert, but instead an error "can only reduce type series, got type noData".
This commit is contained in:
@ -8,6 +8,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
ptr "github.com/xorcare/pointer"
|
||||
|
||||
@ -136,6 +137,32 @@ func TestReduceExecute(t *testing.T) {
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("should return new NoData", func(t *testing.T) {
|
||||
var noData mathexp.Values = []mathexp.Value{
|
||||
mathexp.NoData{Frame: data.NewFrame("no data")},
|
||||
}
|
||||
|
||||
vars := map[string]mathexp.Results{
|
||||
varToReduce: {
|
||||
Values: noData,
|
||||
},
|
||||
}
|
||||
|
||||
results, err := cmd.Execute(context.Background(), vars)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, results.Values, 1)
|
||||
|
||||
v := results.Values[0]
|
||||
assert.Equal(t, v, mathexp.NoData{}.New())
|
||||
|
||||
// should not be able to change the original frame
|
||||
v.AsDataFrame().Name = "there is still no data"
|
||||
assert.NotEqual(t, v, mathexp.NoData{}.New())
|
||||
assert.NotEqual(t, v, noData[0])
|
||||
assert.Equal(t, "no data", noData[0].AsDataFrame().Name)
|
||||
})
|
||||
}
|
||||
|
||||
func randomReduceFunc() string {
|
||||
|
Reference in New Issue
Block a user