Просмотр исходного кода

Convert prometheus specs to typescript

Jimmi Dyson 10 лет назад
Родитель
Сommit
b90e4057ba

+ 93 - 0
public/app/plugins/datasource/prometheus/specs/datasource_specs.ts

@@ -0,0 +1,93 @@
+///<amd-dependency path="app/plugins/datasource/prometheus/datasource" />
+///<amd-dependency path="test/specs/helpers" name="helpers" />
+
+import {describe, beforeEach, it, sinon, expect, angularMocks} from 'test/lib/common';
+import moment  = require('moment');
+declare var helpers: any;
+
+describe('PrometheusDatasource', function() {
+  var ctx = new helpers.ServiceTestContext();
+  beforeEach(angularMocks.module('grafana.services'));
+  beforeEach(ctx.createService('PrometheusDatasource'));
+  beforeEach(function() {
+    ctx.ds = new ctx.service({ url: '', user: 'test', password: 'mupp' });
+  });
+  describe('When querying prometheus with one target using query editor target spec', function() {
+    var results;
+    var urlExpected = '/api/v1/query_range?query=' +
+                      encodeURIComponent('test{job="testjob"}') +
+                      '&start=1443438675&end=1443460275&step=60s';
+    var query = {
+      range: { from: moment(1443438674760), to: moment(1443460274760) },
+      targets: [{ expr: 'test{job="testjob"}' }],
+      interval: '60s'
+    };
+    var response = {
+      status: "success",
+      data: {
+        resultType: "matrix",
+        result: [{
+          metric: {"__name__": "test", job: "testjob"},
+          values: [[1443454528, "3846"]]
+        }]
+      }
+    };
+    beforeEach(function() {
+      ctx.$httpBackend.expect('GET', urlExpected).respond(response);
+      ctx.ds.query(query).then(function(data) { results = data; });
+      ctx.$httpBackend.flush();
+    });
+    it('should generate the correct query', function() {
+      ctx.$httpBackend.verifyNoOutstandingExpectation();
+    });
+    it('should return series list', function() {
+      expect(results.data.length).to.be(1);
+      expect(results.data[0].target).to.be('test{job="testjob"}');
+    });
+  });
+  describe('When performing metricFindQuery', function() {
+    var results;
+    var response;
+    it('label_values(resource) should generate label search query', function() {
+      response = {
+        status: "success",
+        data: ["value1", "value2", "value3"]
+      };
+      ctx.$httpBackend.expect('GET', '/api/v1/label/resource/values').respond(response);
+      ctx.ds.metricFindQuery('label_values(resource)').then(function(data) { results = data; });
+      ctx.$httpBackend.flush();
+      ctx.$rootScope.$apply();
+      expect(results.length).to.be(3);
+    });
+    it('label_values(metric, resource) should generate count metric query', function() {
+      response = {
+        status: "success",
+        data: {
+          resultType: "vector",
+          result: [
+            {metric: {resource: "value1"}, value: []},
+            {metric: {resource: "value2"}, value: []},
+            {metric: {resource: "value3"}, value: []}
+          ]
+        }
+      };
+      ctx.$httpBackend.expect('GET', /\/api\/v1\/query\?query=count\(metric\)%20by%20\(resource\)&time=.*/).respond(response);
+      ctx.ds.metricFindQuery('label_values(metric, resource)').then(function(data) { results = data; });
+      ctx.$httpBackend.flush();
+      ctx.$rootScope.$apply();
+      expect(results.length).to.be(3);
+    });
+    it('metrics(metric.*) should generate metric name query', function() {
+      response = {
+        status: "success",
+        data: ["metric1","metric2","metric3","nomatch"]
+      };
+      ctx.$httpBackend.expect('GET', '/api/v1/label/__name__/values').respond(response);
+      ctx.ds.metricFindQuery('metrics(metric.*)').then(function(data) { results = data; });
+      ctx.$httpBackend.flush();
+      ctx.$rootScope.$apply();
+      expect(results.length).to.be(3);
+    });
+  });
+});
+

+ 0 - 106
public/test/specs/prometheus-datasource-specs.js

@@ -1,106 +0,0 @@
-define([
-  './helpers',
-  'moment',
-  'app/plugins/datasource/prometheus/datasource'
-], function(helpers, moment) {
-  'use strict';
-
-  describe('PrometheusDatasource', function() {
-    var ctx = new helpers.ServiceTestContext();
-
-    beforeEach(module('grafana.services'));
-    beforeEach(ctx.createService('PrometheusDatasource'));
-    beforeEach(function() {
-      ctx.ds = new ctx.service({ url: '', user: 'test', password: 'mupp' });
-    });
-
-    describe('When querying prometheus with one target using query editor target spec', function() {
-      var results;
-      var urlExpected = '/api/v1/query_range?query=' +
-                        encodeURIComponent('test{job="testjob"}') +
-                        '&start=1443438675&end=1443460275&step=60s';
-      var query = {
-        range: { from: moment(1443438674760), to: moment(1443460274760) },
-        targets: [{ expr: 'test{job="testjob"}' }],
-        interval: '60s'
-      };
-
-      var response = {
-        "status":"success",
-        "data":{
-          "resultType":"matrix",
-          "result":[{
-            "metric":{"__name__":"test", "job":"testjob"},
-            "values":[[1443454528,"3846"]]
-          }]
-        }
-      };
-
-      beforeEach(function() {
-        ctx.$httpBackend.expect('GET', urlExpected).respond(response);
-        ctx.ds.query(query).then(function(data) { results = data; });
-        ctx.$httpBackend.flush();
-      });
-
-      it('should generate the correct query', function() {
-        ctx.$httpBackend.verifyNoOutstandingExpectation();
-      });
-
-      it('should return series list', function() {
-        expect(results.data.length).to.be(1);
-        expect(results.data[0].target).to.be('test{job="testjob"}');
-      });
-
-    });
-
-    describe('When performing metricFindQuery', function() {
-      var results;
-      var response;
-
-      it('label_values(resource) should generate label search query', function() {
-        response = {
-          status: "success",
-          data: ["value1", "value2", "value3"]
-        };
-        ctx.$httpBackend.expect('GET', '/api/v1/label/resource/values').respond(response);
-        ctx.ds.metricFindQuery('label_values(resource)').then(function(data) { results = data; });
-        ctx.$httpBackend.flush();
-        ctx.$rootScope.$apply();
-        expect(results.length).to.be(3);
-      });
-
-      it('label_values(metric, resource) should generate count metric query', function() {
-        response = {
-          status: "success",
-          data:{
-            resultType: "vector",
-            result:[
-              {metric:{resource:"value1"},value:[]},
-              {metric:{resource:"value2"},value:[]},
-              {metric:{resource:"value3"},value:[]}
-            ]
-          }
-        };
-        ctx.$httpBackend.expect('GET', /\/api\/v1\/query\?query=count\(metric\)%20by%20\(resource\)&time=.*/).respond(response);
-        ctx.ds.metricFindQuery('label_values(metric, resource)').then(function(data) { results = data; });
-        ctx.$httpBackend.flush();
-        ctx.$rootScope.$apply();
-        expect(results.length).to.be(3);
-      });
-
-      it('metrics(metric.*) should generate metric name query', function() {
-        response = {
-          status: "success",
-          data:["metric1","metric2","metric3","nomatch"]
-        };
-        ctx.$httpBackend.expect('GET', '/api/v1/label/__name__/values').respond(response);
-        ctx.ds.metricFindQuery('metrics(metric.*)').then(function(data) { results = data; });
-        ctx.$httpBackend.flush();
-        ctx.$rootScope.$apply();
-        expect(results.length).to.be(3);
-      });
-
-    });
-  });
-});
-