|
|
@@ -3,26 +3,30 @@ import { metricDescriptors } from './testData';
|
|
|
import { TemplateSrv } from 'app/features/templating/template_srv';
|
|
|
import { CustomVariable } from 'app/features/templating/all';
|
|
|
import { toUtc } from '@grafana/ui/src/utils/moment_wrapper';
|
|
|
+import { DataSourceInstanceSettings } from '@grafana/ui';
|
|
|
+import { StackdriverOptions } from '../types';
|
|
|
+import { BackendSrv } from 'app/core/services/backend_srv';
|
|
|
+import { TimeSrv } from 'app/features/dashboard/services/TimeSrv';
|
|
|
|
|
|
describe('StackdriverDataSource', () => {
|
|
|
- const instanceSettings = {
|
|
|
+ const instanceSettings = ({
|
|
|
jsonData: {
|
|
|
defaultProject: 'testproject',
|
|
|
},
|
|
|
- };
|
|
|
+ } as unknown) as DataSourceInstanceSettings<StackdriverOptions>;
|
|
|
const templateSrv = new TemplateSrv();
|
|
|
- const timeSrv = {};
|
|
|
+ const timeSrv = {} as TimeSrv;
|
|
|
|
|
|
describe('when performing testDataSource', () => {
|
|
|
describe('and call to stackdriver api succeeds', () => {
|
|
|
let ds;
|
|
|
let result;
|
|
|
beforeEach(async () => {
|
|
|
- const backendSrv = {
|
|
|
+ const backendSrv = ({
|
|
|
async datasourceRequest() {
|
|
|
return Promise.resolve({ status: 200 });
|
|
|
},
|
|
|
- };
|
|
|
+ } as unknown) as BackendSrv;
|
|
|
ds = new StackdriverDataSource(instanceSettings, backendSrv, templateSrv, timeSrv);
|
|
|
result = await ds.testDatasource();
|
|
|
});
|
|
|
@@ -35,9 +39,9 @@ describe('StackdriverDataSource', () => {
|
|
|
let ds;
|
|
|
let result;
|
|
|
beforeEach(async () => {
|
|
|
- const backendSrv = {
|
|
|
+ const backendSrv = ({
|
|
|
datasourceRequest: async () => Promise.resolve({ status: 200, data: metricDescriptors }),
|
|
|
- };
|
|
|
+ } as unknown) as BackendSrv;
|
|
|
ds = new StackdriverDataSource(instanceSettings, backendSrv, templateSrv, timeSrv);
|
|
|
result = await ds.testDatasource();
|
|
|
});
|
|
|
@@ -50,7 +54,7 @@ describe('StackdriverDataSource', () => {
|
|
|
let ds;
|
|
|
let result;
|
|
|
beforeEach(async () => {
|
|
|
- const backendSrv = {
|
|
|
+ const backendSrv = ({
|
|
|
datasourceRequest: async () =>
|
|
|
Promise.reject({
|
|
|
statusText: 'Bad Request',
|
|
|
@@ -58,7 +62,7 @@ describe('StackdriverDataSource', () => {
|
|
|
error: { code: 400, message: 'Field interval.endTime had an invalid value' },
|
|
|
},
|
|
|
}),
|
|
|
- };
|
|
|
+ } as unknown) as BackendSrv;
|
|
|
ds = new StackdriverDataSource(instanceSettings, backendSrv, templateSrv, timeSrv);
|
|
|
result = await ds.testDatasource();
|
|
|
});
|
|
|
@@ -103,9 +107,9 @@ describe('StackdriverDataSource', () => {
|
|
|
};
|
|
|
|
|
|
beforeEach(() => {
|
|
|
- const backendSrv = {
|
|
|
+ const backendSrv = ({
|
|
|
datasourceRequest: async () => Promise.resolve({ status: 200, data: response }),
|
|
|
- };
|
|
|
+ } as unknown) as BackendSrv;
|
|
|
ds = new StackdriverDataSource(instanceSettings, backendSrv, templateSrv, timeSrv);
|
|
|
});
|
|
|
|
|
|
@@ -122,7 +126,7 @@ describe('StackdriverDataSource', () => {
|
|
|
let ds;
|
|
|
let result;
|
|
|
beforeEach(async () => {
|
|
|
- const backendSrv = {
|
|
|
+ const backendSrv = ({
|
|
|
async datasourceRequest() {
|
|
|
return Promise.resolve({
|
|
|
data: {
|
|
|
@@ -139,7 +143,7 @@ describe('StackdriverDataSource', () => {
|
|
|
},
|
|
|
});
|
|
|
},
|
|
|
- };
|
|
|
+ } as unknown) as BackendSrv;
|
|
|
ds = new StackdriverDataSource(instanceSettings, backendSrv, templateSrv, timeSrv);
|
|
|
result = await ds.getMetricTypes();
|
|
|
});
|
|
|
@@ -155,12 +159,14 @@ describe('StackdriverDataSource', () => {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ const noopBackendSrv = ({} as unknown) as BackendSrv;
|
|
|
+
|
|
|
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);
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, noopBackendSrv, filterTemplateSrv, timeSrv);
|
|
|
interpolated = ds.interpolateFilters(['resource.label.zone', '=~', '${test}'], {});
|
|
|
});
|
|
|
|
|
|
@@ -173,7 +179,7 @@ describe('StackdriverDataSource', () => {
|
|
|
describe('and is multi value variable', () => {
|
|
|
beforeEach(() => {
|
|
|
const filterTemplateSrv = initTemplateSrv(['filtervalue1', 'filtervalue2'], true);
|
|
|
- const ds = new StackdriverDataSource(instanceSettings, {}, filterTemplateSrv, timeSrv);
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, noopBackendSrv, filterTemplateSrv, timeSrv);
|
|
|
interpolated = ds.interpolateFilters(['resource.label.zone', '=~', '[[test]]'], {});
|
|
|
});
|
|
|
|
|
|
@@ -189,7 +195,7 @@ describe('StackdriverDataSource', () => {
|
|
|
describe('and is single value variable', () => {
|
|
|
beforeEach(() => {
|
|
|
const groupByTemplateSrv = initTemplateSrv('groupby1');
|
|
|
- const ds = new StackdriverDataSource(instanceSettings, {}, groupByTemplateSrv, timeSrv);
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, noopBackendSrv, groupByTemplateSrv, timeSrv);
|
|
|
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
|
|
|
});
|
|
|
|
|
|
@@ -202,7 +208,7 @@ describe('StackdriverDataSource', () => {
|
|
|
describe('and is multi value variable', () => {
|
|
|
beforeEach(() => {
|
|
|
const groupByTemplateSrv = initTemplateSrv(['groupby1', 'groupby2'], true);
|
|
|
- const ds = new StackdriverDataSource(instanceSettings, {}, groupByTemplateSrv, timeSrv);
|
|
|
+ const ds = new StackdriverDataSource(instanceSettings, noopBackendSrv, groupByTemplateSrv, timeSrv);
|
|
|
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
|
|
|
});
|
|
|
|
|
|
@@ -217,7 +223,7 @@ describe('StackdriverDataSource', () => {
|
|
|
describe('unit parsing', () => {
|
|
|
let ds, res;
|
|
|
beforeEach(() => {
|
|
|
- ds = new StackdriverDataSource(instanceSettings, {}, templateSrv, timeSrv);
|
|
|
+ ds = new StackdriverDataSource(instanceSettings, noopBackendSrv, templateSrv, timeSrv);
|
|
|
});
|
|
|
describe('when theres only one target', () => {
|
|
|
describe('and the stackdriver unit doesnt have a corresponding grafana unit', () => {
|