|
|
@@ -16,7 +16,13 @@ describe('ElasticDatasource', function(this: any) {
|
|
|
};
|
|
|
|
|
|
const templateSrv = {
|
|
|
- replace: jest.fn(text => text),
|
|
|
+ replace: jest.fn(text => {
|
|
|
+ if (text.startsWith("$")) {
|
|
|
+ return `resolvedVariable`;
|
|
|
+ } else {
|
|
|
+ return text;
|
|
|
+ }
|
|
|
+ }),
|
|
|
getAdhocFilters: jest.fn(() => []),
|
|
|
};
|
|
|
|
|
|
@@ -67,7 +73,7 @@ describe('ElasticDatasource', function(this: any) {
|
|
|
});
|
|
|
|
|
|
describe('When issuing metric query with interval pattern', () => {
|
|
|
- let requestOptions, parts, header;
|
|
|
+ let requestOptions, parts, header, query;
|
|
|
|
|
|
beforeEach(() => {
|
|
|
createDatasource({
|
|
|
@@ -81,19 +87,22 @@ describe('ElasticDatasource', function(this: any) {
|
|
|
return Promise.resolve({ data: { responses: [] } });
|
|
|
});
|
|
|
|
|
|
- ctx.ds.query({
|
|
|
+ query = {
|
|
|
range: {
|
|
|
from: moment.utc([2015, 4, 30, 10]),
|
|
|
to: moment.utc([2015, 5, 1, 10]),
|
|
|
},
|
|
|
targets: [
|
|
|
{
|
|
|
+ alias: "$varAlias",
|
|
|
bucketAggs: [],
|
|
|
metrics: [{ type: 'raw_document' }],
|
|
|
query: 'escape\\:test',
|
|
|
},
|
|
|
],
|
|
|
- });
|
|
|
+ };
|
|
|
+
|
|
|
+ ctx.ds.query(query);
|
|
|
|
|
|
parts = requestOptions.data.split('\n');
|
|
|
header = angular.fromJson(parts[0]);
|
|
|
@@ -103,6 +112,10 @@ describe('ElasticDatasource', function(this: any) {
|
|
|
expect(header.index).toEqual(['asd-2015.05.30', 'asd-2015.05.31', 'asd-2015.06.01']);
|
|
|
});
|
|
|
|
|
|
+ it('should resolve the alias variable', () => {
|
|
|
+ expect(query.targets[0].alias).toEqual('resolvedVariable');
|
|
|
+ });
|
|
|
+
|
|
|
it('should json escape lucene query', () => {
|
|
|
const body = angular.fromJson(parts[1]);
|
|
|
expect(body.query.bool.filter[1].query_string.query).toBe('escape\\:test');
|