diff --git a/lib/helpers.js b/lib/helpers.js index a27d0c6e..9e7ab956 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -14,7 +14,14 @@ function is_valid_packet(fields) { return false; } // filter out invalid metrics values - else if (!fields[0].match(/^([\-\+\d\.]+$)/)) { + else if (fields[1] == 'g') { + if (!fields[0].match(/^([\-\+\d\.]+$)/)) { + return false; + } else { + return true; + } + } + else if (!fields[0].match(/^([\d\.]+$)/)) { return false; } // filter out malformed sample rates diff --git a/test/helpers_tests.js b/test/helpers_tests.js index 4df74959..b2f2c524 100644 --- a/test/helpers_tests.js +++ b/test/helpers_tests.js @@ -20,6 +20,30 @@ module.exports = { test.done(); }, + counter_deltas_positive_are_not_valid: function (test) { + var res = helpers.is_valid_packet(['+10', 'c']); + test.equals(res, false); + test.done(); + }, + + counter_deltas_negative_are_not_valid: function (test) { + var res = helpers.is_valid_packet(['-10', 'c']); + test.equals(res, false); + test.done(); + }, + + gauges_delta_positive_are_valid: function (test) { + var res = helpers.is_valid_packet(['+10', 'g']); + test.equals(res, true); + test.done(); + }, + + gauges_delta_negative_are_valid: function (test) { + var res = helpers.is_valid_packet(['-10', 'g']); + test.equals(res, true); + test.done(); + }, + correct_packet: function (test) { var res = helpers.is_valid_packet(['345345', 'ms', '@1.0']); test.equals(res, true);