mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 08:35:43 -06:00
c63bbbaec3
* InfluxDB: Drop ctxhttp usage * InfluxDB: Clean up code * InfluxDB: Close query results Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package influxdb
|
|
|
|
import (
|
|
"context"
|
|
"io/ioutil"
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func TestInfluxDB(t *testing.T) {
|
|
Convey("InfluxDB", t, func() {
|
|
datasource := &models.DataSource{
|
|
Url: "http://awesome-influxdb:1337",
|
|
Database: "awesome-db",
|
|
JsonData: simplejson.New(),
|
|
}
|
|
query := "SELECT awesomeness FROM somewhere"
|
|
e := &InfluxDBExecutor{
|
|
QueryParser: &InfluxdbQueryParser{},
|
|
ResponseParser: &ResponseParser{},
|
|
}
|
|
Convey("createRequest with GET httpMode", func() {
|
|
req, err := e.createRequest(context.Background(), datasource, query)
|
|
So(err, ShouldBeNil)
|
|
|
|
Convey("as default", func() {
|
|
So(req.Method, ShouldEqual, "GET")
|
|
})
|
|
|
|
Convey("has a 'q' GET param that equals to query", func() {
|
|
q := req.URL.Query().Get("q")
|
|
So(q, ShouldEqual, query)
|
|
})
|
|
|
|
Convey("has an empty body", func() {
|
|
So(req.Body, ShouldEqual, nil)
|
|
})
|
|
})
|
|
|
|
Convey("createRequest with POST httpMode", func() {
|
|
datasource.JsonData.Set("httpMode", "POST")
|
|
req, err := e.createRequest(context.Background(), datasource, query)
|
|
So(err, ShouldBeNil)
|
|
|
|
Convey("method should be POST", func() {
|
|
So(req.Method, ShouldEqual, "POST")
|
|
})
|
|
|
|
Convey("has no 'q' GET param", func() {
|
|
q := req.URL.Query().Get("q")
|
|
So(q, ShouldEqual, "")
|
|
})
|
|
|
|
Convey("has the request as GET param in body", func() {
|
|
body, _ := ioutil.ReadAll(req.Body)
|
|
testBodyValues := url.Values{}
|
|
testBodyValues.Add("q", query)
|
|
testBody := testBodyValues.Encode()
|
|
So(string(body), ShouldEqual, testBody)
|
|
})
|
|
})
|
|
|
|
Convey("createRequest with PUT httpMode", func() {
|
|
datasource.JsonData.Set("httpMode", "PUT")
|
|
_, err := e.createRequest(context.Background(), datasource, query)
|
|
|
|
Convey("should miserably fail", func() {
|
|
So(err, ShouldEqual, ErrInvalidHttpMode)
|
|
})
|
|
})
|
|
})
|
|
}
|