123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { AbstractLabelOperator, AbstractQuery, DataSourceInstanceSettings } from '@grafana/data';
- import { TemplateSrv } from '../../../features/templating/template_srv';
- import { ElasticDatasource } from './datasource';
- import LanguageProvider from './language_provider';
- import { ElasticsearchOptions, ElasticsearchQuery } from './types';
- const templateSrvStub = {
- getAdhocFilters: jest.fn(() => [] as any[]),
- replace: jest.fn((a: string) => a),
- } as any;
- const dataSource = new ElasticDatasource(
- {
- url: 'http://es.com',
- database: '[asd-]YYYY.MM.DD',
- jsonData: {
- interval: 'Daily',
- esVersion: '2.0.0',
- timeField: '@time',
- },
- } as DataSourceInstanceSettings<ElasticsearchOptions>,
- templateSrvStub as TemplateSrv
- );
- const baseLogsQuery: Partial<ElasticsearchQuery> = {
- metrics: [{ type: 'logs', id: '1' }],
- };
- describe('transform abstract query to elasticsearch query', () => {
- it('With some labels', () => {
- const instance = new LanguageProvider(dataSource);
- const abstractQuery: AbstractQuery = {
- refId: 'bar',
- labelMatchers: [
- { name: 'label1', operator: AbstractLabelOperator.Equal, value: 'value1' },
- { name: 'label2', operator: AbstractLabelOperator.NotEqual, value: 'value2' },
- { name: 'label3', operator: AbstractLabelOperator.EqualRegEx, value: 'value3' },
- { name: 'label4', operator: AbstractLabelOperator.NotEqualRegEx, value: 'value4' },
- ],
- };
- const result = instance.importFromAbstractQuery(abstractQuery);
- expect(result).toEqual({
- ...baseLogsQuery,
- query: 'label1:"value1" AND NOT label2:"value2" AND label3:/value3/ AND NOT label4:/value4/',
- refId: abstractQuery.refId,
- });
- });
- it('Empty query', () => {
- const instance = new LanguageProvider(dataSource);
- const abstractQuery = { labelMatchers: [], refId: 'foo' };
- const result = instance.importFromAbstractQuery(abstractQuery);
- expect(result).toEqual({
- ...baseLogsQuery,
- query: '',
- refId: abstractQuery.refId,
- });
- });
- });
|