model_parser_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package mqe
  2. import (
  3. "testing"
  4. "github.com/grafana/grafana/pkg/components/simplejson"
  5. "github.com/grafana/grafana/pkg/tsdb"
  6. . "github.com/smartystreets/goconvey/convey"
  7. )
  8. func TestMQEQueryParser(t *testing.T) {
  9. Convey("MQE query parser", t, func() {
  10. parser := &MQEQueryParser{}
  11. dsInfo := &tsdb.DataSourceInfo{
  12. JsonData: simplejson.New(),
  13. }
  14. queryContext := &tsdb.QueryContext{}
  15. Convey("can parse simple mqe model", func() {
  16. json := `
  17. {
  18. "apps": [],
  19. "hosts": [
  20. "staples-lab-1"
  21. ],
  22. "metrics": [
  23. {
  24. "metric": "os.cpu.all*"
  25. }
  26. ],
  27. "rawQuery": "",
  28. "refId": "A"
  29. }
  30. `
  31. modelJson, err := simplejson.NewJson([]byte(json))
  32. So(err, ShouldBeNil)
  33. query, err := parser.Parse(modelJson, dsInfo)
  34. So(err, ShouldBeNil)
  35. rawQuery := query.Build(queryContext)
  36. So(rawQuery, ShouldEqual, "")
  37. })
  38. Convey("can parse multi serie mqe model", func() {
  39. json := `
  40. {
  41. "apps": [],
  42. "hosts": [
  43. "staples-lab-1"
  44. ],
  45. "metrics": [
  46. {
  47. "metric": "os.cpu.all.active_percentage"
  48. },
  49. {
  50. "metric": "os.disk.sda.io_time"
  51. }
  52. ],
  53. "rawQuery": "",
  54. "refId": "A",
  55. "addAppToAlias": true,
  56. "addHostToAlias": true
  57. }
  58. `
  59. So(json, ShouldNotBeNil)
  60. })
  61. })
  62. }