Commit 105879ab by thatsparesh

use timeSrv in metricFindQuery as timeRange

parent 716db35f
......@@ -8,7 +8,7 @@ export class MssqlDatasource {
interval: string;
/** @ngInject */
constructor(instanceSettings, private backendSrv, private $q, private templateSrv) {
constructor(instanceSettings, private backendSrv, private $q, private templateSrv, private timeSrv) {
this.name = instanceSettings.name;
this.id = instanceSettings.id;
this.responseParser = new ResponseParser(this.$q);
......@@ -107,19 +107,13 @@ export class MssqlDatasource {
format: 'table',
};
const range = this.timeSrv.timeRange();
const data = {
queries: [interpolatedQuery],
from: range.from.valueOf().toString(),
to: range.to.valueOf().toString(),
};
if (optionalOptions && optionalOptions.range) {
if (optionalOptions.range.from) {
data['from'] = optionalOptions.range.from.valueOf().toString();
}
if (optionalOptions.range.to) {
data['to'] = optionalOptions.range.to.valueOf().toString();
}
}
return this.backendSrv
.datasourceRequest({
url: '/api/tsdb/query',
......
import moment from 'moment';
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 q from 'q';
......@@ -8,13 +8,14 @@ describe('MSSQLDatasource', () => {
const ctx: any = {
backendSrv: {},
templateSrv: new TemplateSrvStub(),
timeSrv: new TimeSrvStub(),
};
beforeEach(() => {
ctx.$q = q;
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', () => {
......@@ -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', () => {
beforeEach(() => {
ctx.variable = new CustomVariable({}, {});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment