Skip to content

Commit

Permalink
fix: improve error message in utils getLabels
Browse files Browse the repository at this point in the history
  • Loading branch information
leftieFriele committed Jun 21, 2024
1 parent efa3267 commit 0417f91
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 14 deletions.
2 changes: 1 addition & 1 deletion lib/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ exports.getLabels = function (labelNames, args) {

if (labelNames.length !== args.length) {
throw new Error(
`Invalid number of arguments. Got ${args.join()}. Expected ${labelNames.join()}.`,
`Invalid number of arguments: "${args.join()}" for label names: "${labelNames.join()}".`,
);
}

Expand Down
8 changes: 4 additions & 4 deletions test/__snapshots__/counterTest.js.snap
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`counter with OpenMetrics registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`counter with OpenMetrics registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`counter with OpenMetrics registry with params as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`counter with OpenMetrics registry with params as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`counter with OpenMetrics registry with params as object should not be possible to decrease a counter 1`] = `"It is not possible to decrease a counter"`;

exports[`counter with OpenMetrics registry with params as object should throw an error when the value is not a number 1`] = `"Value is not a valid number: 3ms"`;

exports[`counter with Prometheus registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`counter with Prometheus registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`counter with Prometheus registry with params as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`counter with Prometheus registry with params as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`counter with Prometheus registry with params as object should not be possible to decrease a counter 1`] = `"It is not possible to decrease a counter"`;

Expand Down
8 changes: 4 additions & 4 deletions test/__snapshots__/histogramTest.js.snap
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`histogram with OpenMetrics registry with object as params with global registry labels should not allow different number of labels 1`] = `"Invalid number of arguments"`;
exports[`histogram with OpenMetrics registry with object as params with global registry labels should not allow different number of labels 1`] = `"Invalid number of arguments: "get,500" for label names: "method"."`;

exports[`histogram with OpenMetrics registry with object as params with global registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`histogram with OpenMetrics registry with object as params with global registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET,/foo" for label names: "method"."`;

exports[`histogram with OpenMetrics registry with object as params with global registry should not allow le as a custom label 1`] = `"le is a reserved label keyword"`;

exports[`histogram with OpenMetrics registry with object as params with global registry should not allow non numbers 1`] = `"Value is not a valid number: asd"`;

exports[`histogram with Prometheus registry with object as params with global registry labels should not allow different number of labels 1`] = `"Invalid number of arguments"`;
exports[`histogram with Prometheus registry with object as params with global registry labels should not allow different number of labels 1`] = `"Invalid number of arguments: "get,500" for label names: "method"."`;

exports[`histogram with Prometheus registry with object as params with global registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`histogram with Prometheus registry with object as params with global registry remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET,/foo" for label names: "method"."`;

exports[`histogram with Prometheus registry with object as params with global registry should not allow le as a custom label 1`] = `"le is a reserved label keyword"`;

Expand Down
10 changes: 5 additions & 5 deletions test/__snapshots__/summaryTest.js.snap
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`summary with OpenMetrics registry global registry with param as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`summary with OpenMetrics registry global registry with param as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`summary with OpenMetrics registry global registry with param as object remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`summary with OpenMetrics registry global registry with param as object remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`summary with OpenMetrics registry global registry with param as object should validate labels when observing 1`] = `"Added label "baz" is not included in initial labelset: [ 'foo' ]"`;

exports[`summary with Prometheus registry global registry with param as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`summary with Prometheus registry global registry with param as object labels should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`summary with Prometheus registry global registry with param as object remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments"`;
exports[`summary with Prometheus registry global registry with param as object remove should throw error if label lengths does not match 1`] = `"Invalid number of arguments: "GET" for label names: "method,endpoint"."`;

exports[`summary with Prometheus registry global registry with param as object should validate labels when observing 1`] = `"Added label "baz" is not included in initial labelset: [ 'foo' ]"`;
exports[`summary with Prometheus registry global registry with param as object should validate labels when observing 1`] = `"Added label "baz" is not included in initial labelset: [ 'foo' ]"`;
20 changes: 20 additions & 0 deletions test/utilTest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'use strict';

describe('utils', () => {
describe('getLabels', () => {
const getLabels = require('../lib/util').getLabels;

it('should not throw on missing argument', async () => {
const labels = getLabels(['label1', 'label2'], ['arg1', 'arg2']);
expect(labels).toEqual({ label1: 'arg1', label2: 'arg2' });
});

it('should throw on missing argument', async () => {
expect(() => {
getLabels(['label1', 'label2'], ['arg1']);
}).toThrowError(
'Invalid number of arguments: "arg1" for label names: "label1,label2".',
);
});
});
});

0 comments on commit 0417f91

Please sign in to comment.