|
|
@@ -2,7 +2,7 @@ import { GraphiteDatasource } from '../datasource';
|
|
|
import _ from 'lodash';
|
|
|
// @ts-ignore
|
|
|
import $q from 'q';
|
|
|
-import { TemplateSrvStub } from 'test/specs/helpers';
|
|
|
+import { TemplateSrv } from 'app/features/templating/template_srv';
|
|
|
import { dateTime } from '@grafana/data';
|
|
|
|
|
|
describe('graphiteDatasource', () => {
|
|
|
@@ -10,7 +10,7 @@ describe('graphiteDatasource', () => {
|
|
|
backendSrv: {},
|
|
|
$q,
|
|
|
// @ts-ignore
|
|
|
- templateSrv: new TemplateSrvStub(),
|
|
|
+ templateSrv: new TemplateSrv(),
|
|
|
instanceSettings: { url: 'url', name: 'graphiteProd', jsonData: {} },
|
|
|
};
|
|
|
|
|
|
@@ -218,6 +218,38 @@ describe('graphiteDatasource', () => {
|
|
|
});
|
|
|
expect(results.length).toBe(2);
|
|
|
});
|
|
|
+
|
|
|
+ describe('when formatting targets', () => {
|
|
|
+ it('does not attempt to glob for one variable', () => {
|
|
|
+ ctx.ds.templateSrv.init([
|
|
|
+ {
|
|
|
+ type: 'query',
|
|
|
+ name: 'metric',
|
|
|
+ current: { value: ['b'] },
|
|
|
+ },
|
|
|
+ ]);
|
|
|
+
|
|
|
+ const results = ctx.ds.buildGraphiteParams({
|
|
|
+ targets: [{ target: 'my.$metric.*' }],
|
|
|
+ });
|
|
|
+ expect(results).toStrictEqual(['target=my.b.*', 'format=json']);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('globs for more than one variable', () => {
|
|
|
+ ctx.ds.templateSrv.init([
|
|
|
+ {
|
|
|
+ type: 'query',
|
|
|
+ name: 'metric',
|
|
|
+ current: { value: ['a', 'b'] },
|
|
|
+ },
|
|
|
+ ]);
|
|
|
+
|
|
|
+ const results = ctx.ds.buildGraphiteParams({
|
|
|
+ targets: [{ target: 'my.[[metric]].*' }],
|
|
|
+ });
|
|
|
+ expect(results).toStrictEqual(['target=my.%7Ba%2Cb%7D.*', 'format=json']);
|
|
|
+ });
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
describe('querying for template variables', () => {
|
|
|
@@ -308,7 +340,13 @@ describe('graphiteDatasource', () => {
|
|
|
});
|
|
|
|
|
|
it('/metrics/find should be POST', () => {
|
|
|
- ctx.templateSrv.setGrafanaVariable('foo', 'bar');
|
|
|
+ ctx.ds.templateSrv.init([
|
|
|
+ {
|
|
|
+ type: 'query',
|
|
|
+ name: 'foo',
|
|
|
+ current: { value: ['bar'] },
|
|
|
+ },
|
|
|
+ ]);
|
|
|
ctx.ds.metricFindQuery('[[foo]]').then((data: any) => {
|
|
|
results = data;
|
|
|
});
|
|
|
@@ -327,7 +365,7 @@ function accessScenario(name: string, url: string, fn: any) {
|
|
|
backendSrv: {},
|
|
|
$q,
|
|
|
// @ts-ignore
|
|
|
- templateSrv: new TemplateSrvStub(),
|
|
|
+ templateSrv: new TemplateSrv(),
|
|
|
instanceSettings: { url: 'url', name: 'graphiteProd', jsonData: {} },
|
|
|
};
|
|
|
|