|
@@ -1,4 +1,4 @@
|
|
|
-import { parseSelector } from '../language_utils';
|
|
|
|
|
|
|
+import { expandRecordingRules, parseSelector } from '../language_utils';
|
|
|
|
|
|
|
|
describe('parseSelector()', () => {
|
|
describe('parseSelector()', () => {
|
|
|
let parsed;
|
|
let parsed;
|
|
@@ -62,3 +62,25 @@ describe('parseSelector()', () => {
|
|
|
expect(parsed.selector).toBe('{__name__="bar:metric:1m"}');
|
|
expect(parsed.selector).toBe('{__name__="bar:metric:1m"}');
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+describe('expandRecordingRules()', () => {
|
|
|
|
|
+ it('returns query w/o recording rules as is', () => {
|
|
|
|
|
+ expect(expandRecordingRules('metric', {})).toBe('metric');
|
|
|
|
|
+ expect(expandRecordingRules('metric + metric', {})).toBe('metric + metric');
|
|
|
|
|
+ expect(expandRecordingRules('metric{}', {})).toBe('metric{}');
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('does not modify recording rules name in label values', () => {
|
|
|
|
|
+ expect(expandRecordingRules('{__name__="metric"} + bar', { metric: 'foo', bar: 'super' })).toBe(
|
|
|
|
|
+ '{__name__="metric"} + super'
|
|
|
|
|
+ );
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('returns query with expanded recording rules', () => {
|
|
|
|
|
+ expect(expandRecordingRules('metric', { metric: 'foo' })).toBe('foo');
|
|
|
|
|
+ expect(expandRecordingRules('metric + metric', { metric: 'foo' })).toBe('foo + foo');
|
|
|
|
|
+ expect(expandRecordingRules('metric{}', { metric: 'foo' })).toBe('foo{}');
|
|
|
|
|
+ expect(expandRecordingRules('metric[]', { metric: 'foo' })).toBe('foo[]');
|
|
|
|
|
+ expect(expandRecordingRules('metric + foo', { metric: 'foo', foo: 'bar' })).toBe('foo + bar');
|
|
|
|
|
+ });
|
|
|
|
|
+});
|