|
@@ -1,6 +1,6 @@
|
|
|
import moment from 'moment';
|
|
import moment from 'moment';
|
|
|
import { MssqlDatasource } from '../datasource';
|
|
import { MssqlDatasource } from '../datasource';
|
|
|
-import { TemplateSrvStub } from 'test/specs/helpers';
|
|
|
|
|
|
|
+import { TemplateSrvStub, TimeSrvStub } from 'test/specs/helpers';
|
|
|
import { CustomVariable } from 'app/features/templating/custom_variable';
|
|
import { CustomVariable } from 'app/features/templating/custom_variable';
|
|
|
import q from 'q';
|
|
import q from 'q';
|
|
|
|
|
|
|
@@ -8,13 +8,14 @@ describe('MSSQLDatasource', () => {
|
|
|
const ctx: any = {
|
|
const ctx: any = {
|
|
|
backendSrv: {},
|
|
backendSrv: {},
|
|
|
templateSrv: new TemplateSrvStub(),
|
|
templateSrv: new TemplateSrvStub(),
|
|
|
|
|
+ timeSrv: new TimeSrvStub(),
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
beforeEach(() => {
|
|
|
ctx.$q = q;
|
|
ctx.$q = q;
|
|
|
ctx.instanceSettings = { name: 'mssql' };
|
|
ctx.instanceSettings = { name: 'mssql' };
|
|
|
|
|
|
|
|
- ctx.ds = new MssqlDatasource(ctx.instanceSettings, ctx.backendSrv, ctx.$q, ctx.templateSrv);
|
|
|
|
|
|
|
+ ctx.ds = new MssqlDatasource(ctx.instanceSettings, ctx.backendSrv, ctx.$q, ctx.templateSrv, ctx.timeSrv);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
describe('When performing annotationQuery', () => {
|
|
describe('When performing annotationQuery', () => {
|
|
@@ -188,6 +189,49 @@ describe('MSSQLDatasource', () => {
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ describe('When performing metricFindQuery', () => {
|
|
|
|
|
+ let results;
|
|
|
|
|
+ const query = 'select * from atable';
|
|
|
|
|
+ const response = {
|
|
|
|
|
+ results: {
|
|
|
|
|
+ tempvar: {
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ rowCount: 1,
|
|
|
|
|
+ },
|
|
|
|
|
+ refId: 'tempvar',
|
|
|
|
|
+ tables: [
|
|
|
|
|
+ {
|
|
|
|
|
+ columns: [{ text: 'title' }],
|
|
|
|
|
+ rows: [['aTitle']],
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
+ const time = {
|
|
|
|
|
+ from: moment(1521545610656),
|
|
|
|
|
+ to: moment(1521546251185)
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ beforeEach(() => {
|
|
|
|
|
+ ctx.timeSrv.setTime(time);
|
|
|
|
|
+
|
|
|
|
|
+ ctx.backendSrv.datasourceRequest = options => {
|
|
|
|
|
+ results = options.data;
|
|
|
|
|
+ return ctx.$q.when({ data: response, status: 200 });
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ return ctx.ds.metricFindQuery(query);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ it('should pass timerange to datasourceRequest', () => {
|
|
|
|
|
+ expect(results.from).toBe(time.from.valueOf().toString());
|
|
|
|
|
+ expect(results.to).toBe(time.to.valueOf().toString());
|
|
|
|
|
+ expect(results.queries.length).toBe(1);
|
|
|
|
|
+ expect(results.queries[0].rawSql).toBe(query);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
describe('When interpolating variables', () => {
|
|
describe('When interpolating variables', () => {
|
|
|
beforeEach(() => {
|
|
beforeEach(() => {
|
|
|
ctx.variable = new CustomVariable({}, {});
|
|
ctx.variable = new CustomVariable({}, {});
|