Chore: Rewrite tsdb influxdb test to standard library (#30091)

This commit is contained in:
Emil Hessman
2021-01-07 09:31:34 +01:00
committed by GitHub
parent fd1b2904cd
commit 2b9387210b

View File

@@ -8,69 +8,56 @@ import (
"github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/models"
. "github.com/smartystreets/goconvey/convey" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
func TestInfluxDB(t *testing.T) { func TestInfluxDBExecutor_createRequest(t *testing.T) {
Convey("InfluxDB", t, func() { datasource := &models.DataSource{
datasource := &models.DataSource{ Url: "http://awesome-influxdb:1337",
Url: "http://awesome-influxdb:1337", Database: "awesome-db",
Database: "awesome-db", JsonData: simplejson.New(),
JsonData: simplejson.New(), }
} query := "SELECT awesomeness FROM somewhere"
query := "SELECT awesomeness FROM somewhere" e := &InfluxDBExecutor{
e := &InfluxDBExecutor{ QueryParser: &InfluxdbQueryParser{},
QueryParser: &InfluxdbQueryParser{}, ResponseParser: &ResponseParser{},
ResponseParser: &ResponseParser{}, }
}
Convey("createRequest with GET httpMode", func() {
req, err := e.createRequest(context.Background(), datasource, query)
So(err, ShouldBeNil)
Convey("as default", func() { t.Run("createRequest with GET httpMode", func(t *testing.T) {
So(req.Method, ShouldEqual, "GET") req, err := e.createRequest(context.Background(), datasource, query)
}) require.NoError(t, err)
Convey("has a 'q' GET param that equals to query", func() { assert.Equal(t, "GET", req.Method)
q := req.URL.Query().Get("q")
So(q, ShouldEqual, query)
})
Convey("has an empty body", func() { q := req.URL.Query().Get("q")
So(req.Body, ShouldEqual, nil) assert.Equal(t, query, q)
})
})
Convey("createRequest with POST httpMode", func() { assert.Nil(t, req.Body)
datasource.JsonData.Set("httpMode", "POST") })
req, err := e.createRequest(context.Background(), datasource, query)
So(err, ShouldBeNil)
Convey("method should be POST", func() { t.Run("createRequest with POST httpMode", func(t *testing.T) {
So(req.Method, ShouldEqual, "POST") datasource.JsonData.Set("httpMode", "POST")
}) req, err := e.createRequest(context.Background(), datasource, query)
require.NoError(t, err)
Convey("has no 'q' GET param", func() { assert.Equal(t, "POST", req.Method)
q := req.URL.Query().Get("q")
So(q, ShouldEqual, "")
})
Convey("has the request as GET param in body", func() { q := req.URL.Query().Get("q")
body, _ := ioutil.ReadAll(req.Body) assert.Empty(t, q)
testBodyValues := url.Values{}
testBodyValues.Add("q", query)
testBody := testBodyValues.Encode()
So(string(body), ShouldEqual, testBody)
})
})
Convey("createRequest with PUT httpMode", func() { body, err := ioutil.ReadAll(req.Body)
datasource.JsonData.Set("httpMode", "PUT") require.NoError(t, err)
_, err := e.createRequest(context.Background(), datasource, query)
Convey("should miserably fail", func() { testBodyValues := url.Values{}
So(err, ShouldEqual, ErrInvalidHttpMode) testBodyValues.Add("q", query)
}) testBody := testBodyValues.Encode()
}) assert.Equal(t, testBody, string(body))
})
t.Run("createRequest with PUT httpMode", func(t *testing.T) {
datasource.JsonData.Set("httpMode", "PUT")
_, err := e.createRequest(context.Background(), datasource, query)
require.EqualError(t, err, ErrInvalidHttpMode.Error())
}) })
} }