|
@@ -1,7 +1,8 @@
|
|
|
import StackdriverDataSource from '../datasource';
|
|
import StackdriverDataSource from '../datasource';
|
|
|
import { metricDescriptors } from './testData';
|
|
import { metricDescriptors } from './testData';
|
|
|
import moment from 'moment';
|
|
import moment from 'moment';
|
|
|
-import { TemplateSrvStub } from 'test/specs/helpers';
|
|
|
|
|
|
|
+import { TemplateSrv } from 'app/features/templating/template_srv';
|
|
|
|
|
+import { CustomVariable } from 'app/features/templating/all';
|
|
|
|
|
|
|
|
describe('StackdriverDataSource', () => {
|
|
describe('StackdriverDataSource', () => {
|
|
|
const instanceSettings = {
|
|
const instanceSettings = {
|
|
@@ -9,7 +10,7 @@ describe('StackdriverDataSource', () => {
|
|
|
defaultProject: 'testproject',
|
|
defaultProject: 'testproject',
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
- const templateSrv = new TemplateSrvStub();
|
|
|
|
|
|
|
+ const templateSrv = new TemplateSrv();
|
|
|
const timeSrv = {};
|
|
const timeSrv = {};
|
|
|
|
|
|
|
|
describe('when performing testDataSource', () => {
|
|
describe('when performing testDataSource', () => {
|
|
@@ -154,15 +155,41 @@ describe('StackdriverDataSource', () => {
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ describe('when interpolating a template variable for the filter', () => {
|
|
|
|
|
+ let interpolated;
|
|
|
|
|
+ describe('and is single value variable', () => {
|
|
|
|
|
+ beforeEach(() => {
|
|
|
|
|
+ const filterTemplateSrv = initTemplateSrv('filtervalue1');
|
|
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, {}, filterTemplateSrv, timeSrv);
|
|
|
|
|
+ interpolated = ds.interpolateFilters(['resource.label.zone', '=~', '${test}'], {});
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('should replace the variable with the value', () => {
|
|
|
|
|
+ expect(interpolated.length).toBe(3);
|
|
|
|
|
+ expect(interpolated[2]).toBe('filtervalue1');
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ describe('and is multi value variable', () => {
|
|
|
|
|
+ beforeEach(() => {
|
|
|
|
|
+ const filterTemplateSrv = initTemplateSrv(['filtervalue1', 'filtervalue2'], true);
|
|
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, {}, filterTemplateSrv, timeSrv);
|
|
|
|
|
+ interpolated = ds.interpolateFilters(['resource.label.zone', '=~', '[[test]]'], {});
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('should replace the variable with a regex expression', () => {
|
|
|
|
|
+ expect(interpolated[2]).toBe('(filtervalue1|filtervalue2)');
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
describe('when interpolating a template variable for group bys', () => {
|
|
describe('when interpolating a template variable for group bys', () => {
|
|
|
let interpolated;
|
|
let interpolated;
|
|
|
|
|
|
|
|
describe('and is single value variable', () => {
|
|
describe('and is single value variable', () => {
|
|
|
beforeEach(() => {
|
|
beforeEach(() => {
|
|
|
- templateSrv.data = {
|
|
|
|
|
- test: 'groupby1',
|
|
|
|
|
- };
|
|
|
|
|
- const ds = new StackdriverDataSource(instanceSettings, {}, templateSrv, timeSrv);
|
|
|
|
|
|
|
+ const groupByTemplateSrv = initTemplateSrv('groupby1');
|
|
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, {}, groupByTemplateSrv, timeSrv);
|
|
|
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
|
|
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -174,10 +201,8 @@ describe('StackdriverDataSource', () => {
|
|
|
|
|
|
|
|
describe('and is multi value variable', () => {
|
|
describe('and is multi value variable', () => {
|
|
|
beforeEach(() => {
|
|
beforeEach(() => {
|
|
|
- templateSrv.data = {
|
|
|
|
|
- test: 'groupby1,groupby2',
|
|
|
|
|
- };
|
|
|
|
|
- const ds = new StackdriverDataSource(instanceSettings, {}, templateSrv, timeSrv);
|
|
|
|
|
|
|
+ const groupByTemplateSrv = initTemplateSrv(['groupby1', 'groupby2'], true);
|
|
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, {}, groupByTemplateSrv, timeSrv);
|
|
|
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
|
|
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -241,3 +266,19 @@ describe('StackdriverDataSource', () => {
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
+function initTemplateSrv(values: any, multi = false) {
|
|
|
|
|
+ const templateSrv = new TemplateSrv();
|
|
|
|
|
+ templateSrv.init([
|
|
|
|
|
+ new CustomVariable(
|
|
|
|
|
+ {
|
|
|
|
|
+ name: 'test',
|
|
|
|
|
+ current: {
|
|
|
|
|
+ value: values,
|
|
|
|
|
+ },
|
|
|
|
|
+ multi: multi,
|
|
|
|
|
+ },
|
|
|
|
|
+ {}
|
|
|
|
|
+ ),
|
|
|
|
|
+ ]);
|
|
|
|
|
+ return templateSrv;
|
|
|
|
|
+}
|