mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Elasticsearch: Migrate frontend query builder tests to backend (#59578)
* WIP: Migrated first batch of tests * Migrate more tests * Migrate rest of the tests * Update comments * Update * Update * Remove newline
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { ElasticQueryBuilder } from './QueryBuilder';
|
||||
import { ElasticsearchQuery } from './types';
|
||||
import { ElasticsearchQuery, TermsQuery } from './types';
|
||||
|
||||
describe('ElasticQueryBuilder', () => {
|
||||
const builder = new ElasticQueryBuilder({ timeField: '@timestamp' }); // es2
|
||||
@@ -266,7 +266,7 @@ describe('ElasticQueryBuilder', () => {
|
||||
refId: 'A',
|
||||
metrics: [{ type: 'raw_document', id: '1', settings: {} }],
|
||||
timeField: '@timestamp',
|
||||
bucketAggs: [] as any[],
|
||||
bucketAggs: [],
|
||||
};
|
||||
|
||||
const query = builder.build(target);
|
||||
@@ -587,6 +587,8 @@ describe('ElasticQueryBuilder', () => {
|
||||
expect(firstLevel.histogram.min_doc_count).toBe('2');
|
||||
});
|
||||
|
||||
// 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(
|
||||
{
|
||||
@@ -616,12 +618,17 @@ describe('ElasticQueryBuilder', () => {
|
||||
});
|
||||
|
||||
describe('getTermsQuery', () => {
|
||||
function testGetTermsQuery(queryDef: any) {
|
||||
function testGetTermsQuery(queryDef: TermsQuery) {
|
||||
const query = builder.getTermsQuery(queryDef);
|
||||
return query.aggs['1'].terms.order;
|
||||
}
|
||||
|
||||
function checkSort(order: any, expected: string) {
|
||||
function checkSort(
|
||||
order: {
|
||||
[key: string]: string;
|
||||
},
|
||||
expected: string
|
||||
) {
|
||||
expect(order._term).toBeUndefined();
|
||||
expect(order._key).toBe(expected);
|
||||
}
|
||||
@@ -665,7 +672,9 @@ describe('ElasticQueryBuilder', () => {
|
||||
it('should not add query_string filter when query is empty', () => {
|
||||
const query = builder.getTermsQuery({ orderBy: 'doc_count', order: 'asc' });
|
||||
|
||||
expect(query.query.bool.filter.find((filter: any) => Object.keys(filter).includes('query_string'))).toBeFalsy();
|
||||
expect(
|
||||
query.query.bool.filter.find((filter: object) => Object.keys(filter).includes('query_string'))
|
||||
).toBeFalsy();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -683,7 +692,9 @@ describe('ElasticQueryBuilder', () => {
|
||||
it('should not add query_string filter when query is empty', () => {
|
||||
const query = builder.build({ refId: 'A' });
|
||||
|
||||
expect(query.query.bool.filter.find((filter: any) => Object.keys(filter).includes('query_string'))).toBeFalsy();
|
||||
expect(
|
||||
query.query.bool.filter.find((filter: object) => Object.keys(filter).includes('query_string'))
|
||||
).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -705,7 +716,7 @@ describe('ElasticQueryBuilder', () => {
|
||||
{ _doc: { order: 'desc' } },
|
||||
]);
|
||||
|
||||
const expectedAggs: any = {
|
||||
const expectedAggs = {
|
||||
// FIXME: It's pretty weak to include this '1' in the test as it's not part of what we are testing here and
|
||||
// might change as a cause of unrelated changes
|
||||
1: {
|
||||
@@ -736,7 +747,9 @@ describe('ElasticQueryBuilder', () => {
|
||||
it('should not add query_string filter when query is empty', () => {
|
||||
const query = builder.getLogsQuery({ refId: 'A' }, 500);
|
||||
|
||||
expect(query.query.bool.filter.find((filter: any) => Object.keys(filter).includes('query_string'))).toBeFalsy();
|
||||
expect(
|
||||
query.query.bool.filter.find((filter: object) => Object.keys(filter).includes('query_string'))
|
||||
).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user