|
|
|
@ -604,36 +604,6 @@ describe('ElasticQueryBuilder', () => { |
|
|
|
|
expect(firstLevel.nested.path).toBe('nested_field'); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// This test wasn't migrated, as adhoc variables are going to be interpolated before
|
|
|
|
|
// Or we need to add this to backend query builder (TBD)
|
|
|
|
|
it('with adhoc filters', () => { |
|
|
|
|
const query = builder.build( |
|
|
|
|
{ |
|
|
|
|
refId: 'A', |
|
|
|
|
metrics: [{ type: 'count', id: '0' }], |
|
|
|
|
timeField: '@timestamp', |
|
|
|
|
bucketAggs: [{ type: 'date_histogram', field: '@timestamp', id: '3' }], |
|
|
|
|
}, |
|
|
|
|
[ |
|
|
|
|
{ key: 'key1', operator: '=', value: 'value1', condition: '' }, |
|
|
|
|
{ key: 'key2', operator: '=', value: 'value2', condition: '' }, |
|
|
|
|
{ key: 'key2', operator: '!=', value: 'value2', condition: '' }, |
|
|
|
|
{ key: 'key3', operator: '<', value: 'value3', condition: '' }, |
|
|
|
|
{ key: 'key4', operator: '>', value: 'value4', condition: '' }, |
|
|
|
|
{ key: 'key5', operator: '=~', value: 'value5', condition: '' }, |
|
|
|
|
{ key: 'key6', operator: '!~', value: 'value6', condition: '' }, |
|
|
|
|
] |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
expect(query.query.bool.must[0].match_phrase['key1'].query).toBe('value1'); |
|
|
|
|
expect(query.query.bool.must[1].match_phrase['key2'].query).toBe('value2'); |
|
|
|
|
expect(query.query.bool.must_not[0].match_phrase['key2'].query).toBe('value2'); |
|
|
|
|
expect(query.query.bool.filter[1].range['key3'].lt).toBe('value3'); |
|
|
|
|
expect(query.query.bool.filter[2].range['key4'].gt).toBe('value4'); |
|
|
|
|
expect(query.query.bool.filter[3].regexp['key5']).toBe('value5'); |
|
|
|
|
expect(query.query.bool.filter[4].bool.must_not.regexp['key6']).toBe('value6'); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
describe('getTermsQuery', () => { |
|
|
|
|
function testGetTermsQuery(queryDef: TermsQuery) { |
|
|
|
|
const query = builder.getTermsQuery(queryDef); |
|
|
|
@ -769,26 +739,6 @@ describe('ElasticQueryBuilder', () => { |
|
|
|
|
).toBeFalsy(); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('with adhoc filters', () => { |
|
|
|
|
// TODO: Types for AdHocFilters
|
|
|
|
|
const adhocFilters = [ |
|
|
|
|
{ key: 'key1', operator: '=', value: 'value1', condition: '' }, |
|
|
|
|
{ key: 'key2', operator: '!=', value: 'value2', condition: '' }, |
|
|
|
|
{ key: 'key3', operator: '<', value: 'value3', condition: '' }, |
|
|
|
|
{ key: 'key4', operator: '>', value: 'value4', condition: '' }, |
|
|
|
|
{ key: 'key5', operator: '=~', value: 'value5', condition: '' }, |
|
|
|
|
{ key: 'key6', operator: '!~', value: 'value6', condition: '' }, |
|
|
|
|
]; |
|
|
|
|
const query = builder.getLogsQuery({ refId: 'A' }, 500, adhocFilters); |
|
|
|
|
|
|
|
|
|
expect(query.query.bool.must[0].match_phrase['key1'].query).toBe('value1'); |
|
|
|
|
expect(query.query.bool.must_not[0].match_phrase['key2'].query).toBe('value2'); |
|
|
|
|
expect(query.query.bool.filter[1].range['key3'].lt).toBe('value3'); |
|
|
|
|
expect(query.query.bool.filter[2].range['key4'].gt).toBe('value4'); |
|
|
|
|
expect(query.query.bool.filter[3].regexp['key5']).toBe('value5'); |
|
|
|
|
expect(query.query.bool.filter[4].bool.must_not.regexp['key6']).toBe('value6'); |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
describe('Value casting for settings', () => { |
|
|
|
|