-
Notifications
You must be signed in to change notification settings - Fork 4
/
collector_test.ts
65 lines (52 loc) · 1.56 KB
/
collector_test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import { assert, assertEquals, MetricMock, test } from "./test_deps.ts";
import { Collector, escapeHelpString, isValidMetricName } from "./collector.ts";
test({
name: "Collector",
fn() {
const collector = new Collector("name", "help", "type");
assertEquals(collector.name, "name");
assertEquals(collector.help, "help");
assertEquals(collector.type, "type");
assertEquals(collector.collect(), []);
const metric = new MetricMock(["some", "labels"], ["some", "values"]);
assertEquals(collector.getOrSetMetric(metric), metric);
assertEquals(collector.collect(), [metric]);
const other = new MetricMock(["other", "labels"], ["other", "values"]);
assertEquals(collector.getOrSetMetric(other), other);
assertEquals(collector.getOrSetMetric(metric), metric);
assertEquals(collector.collect(), [metric, other]);
},
});
test({
name: "isValidMetricName",
fn() {
const validNames = [
"valid_metric_name",
"VALID_METRIC_NAME",
"valid:metric:name",
"_valid_metric_name_",
":valid:metric:name:",
"valid_metric_name_2",
];
for (const name of validNames) {
assert(isValidMetricName(name));
}
const invalidNames = [
"",
"0_invalid_metric_name",
"$@#!",
];
for (const name of invalidNames) {
assert(!isValidMetricName(name));
}
},
});
test({
name: "escapeHelpString",
fn() {
const backslash = "\\";
const newLine = "\n";
assertEquals(escapeHelpString(backslash), "\\\\");
assertEquals(escapeHelpString(newLine), "\\\n");
},
});