grafana/pkg/tsdb/influxdb/healthcheck_test.go
ismail simsek 2f9636e698
InfluxDB: move datasource health check to backend (#52668)
* Move datasource health check to backend

* Introduce healthcheck unit tests

* Remove unused method
2022-07-28 12:06:09 +02:00

51 lines
2.0 KiB
Go

package influxdb
import (
"context"
"testing"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/stretchr/testify/assert"
)
func Test_healthcheck(t *testing.T) {
t.Run("should do successful health check for version flux ", func(t *testing.T) {
s := GetMockService(influxVersionFlux, RoundTripper{
Body: `#datatype,string,long,string,string,string,string,long
#group,false,false,false,false,true,false,false
#default,_result,,,,,,
,result,table,name,id,organizationID,retentionPolicy,retentionPeriod
,,0,_monitoring,effbe6d547e1c085,c678d3a458299f4e,,604800000000000
,,0,_tasks,9ac37d3047b0970c,c678d3a458299f4e,,259200000000000
,,0,mybucket,98184c45c69fc01e,c678d3a458299f4e,,0`,
})
res, err := s.CheckHealth(context.Background(), &backend.CheckHealthRequest{
PluginContext: backend.PluginContext{},
Headers: nil,
})
assert.NoError(t, err)
assert.Equal(t, backend.HealthStatusOk, res.Status)
})
t.Run("should do successful health check for version InfluxQL", func(t *testing.T) {
s := GetMockService(influxVersionInfluxQL, RoundTripper{
Body: `{"results": [{"series": [{"columns": ["name"],"name": "measurements","values": [["cpu"],["disk"],["diskio"],["kernel"],["mem"],["processes"],["swap"],["system"]]}],"statement_id": 0}]}`,
})
res, err := s.CheckHealth(context.Background(), &backend.CheckHealthRequest{
PluginContext: backend.PluginContext{},
Headers: nil,
})
assert.NoError(t, err)
assert.Equal(t, backend.HealthStatusOk, res.Status)
})
t.Run("should fail when version is unknown", func(t *testing.T) {
s := GetMockService("unknown-influx-version", RoundTripper{
Body: `{"results": [{"series": [{"columns": ["name"],"name": "measurements","values": [["cpu"],["disk"],["diskio"],["kernel"],["mem"],["processes"],["swap"],["system"]]}],"statement_id": 0}]}`,
})
res, _ := s.CheckHealth(context.Background(), &backend.CheckHealthRequest{
PluginContext: backend.PluginContext{},
Headers: nil,
})
assert.Equal(t, backend.HealthStatusError, res.Status)
})
}