فهرست منبع

Small fix to graphiteDatasource and sending cacheTimeout undefined, reintroduced this bug yesterday, added unit test so it should not appear again

Torkel Ödegaard 11 سال پیش
والد
کامیت
65af872ec6
2فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 3 1
      src/app/services/graphite/graphiteDatasource.js
  2. 6 1
      src/test/specs/graphiteDatasource-specs.js

+ 3 - 1
src/app/services/graphite/graphiteDatasource.js

@@ -251,7 +251,9 @@ function (angular, _, $, config, kbn, moment) {
 
       _.each(options, function (value, key) {
         if ($.inArray(key, graphite_options) === -1) { return; }
-        clean_options.push(key + "=" + encodeURIComponent(value));
+        if (value) {
+          clean_options.push(key + "=" + encodeURIComponent(value));
+        }
       });
 
       return clean_options;

+ 6 - 1
src/test/specs/graphiteDatasource-specs.js

@@ -18,7 +18,7 @@ define([
       var query = {
         range: { from: 'now-1h', to: 'now' },
         targets: [{ target: 'prod1.count' }, {target: 'prod2.count'}],
-        maxDataPoints: 500
+        maxDataPoints: 500,
       };
 
       var response = [{ target: 'prod1.count', points: [[10, 1], [12,1]], }];
@@ -46,6 +46,11 @@ define([
         expect(params).to.contain('until=now');
       });
 
+      it('should exclude undefined params', function() {
+        var params = request.split('&');
+        expect(params).to.not.contain('cacheTimeout=undefined');
+      });
+
       it('should return series list', function() {
         expect(results.data.length).to.be(1);
         expect(results.data[0].target).to.be('prod1.count');