Selaa lähdekoodia

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

Torkel Ödegaard 11 vuotta sitten
vanhempi
commit
65af872ec6

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

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

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

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