2020-05-06 11:21:25 +02:00
|
|
|
import { getHighlighterExpressionsFromQuery } from './query_utils';
|
2019-05-13 09:58:26 +02:00
|
|
|
|
|
|
|
|
describe('getHighlighterExpressionsFromQuery', () => {
|
|
|
|
|
it('returns no expressions for empty query', () => {
|
|
|
|
|
expect(getHighlighterExpressionsFromQuery('')).toEqual([]);
|
|
|
|
|
});
|
2019-07-02 09:06:04 +01:00
|
|
|
|
2019-05-13 09:58:26 +02:00
|
|
|
it('returns an expression for query with filter', () => {
|
|
|
|
|
expect(getHighlighterExpressionsFromQuery('{foo="bar"} |= "x"')).toEqual(['x']);
|
|
|
|
|
});
|
2019-07-02 09:06:04 +01:00
|
|
|
|
2019-05-13 09:58:26 +02:00
|
|
|
it('returns expressions for query with filter chain', () => {
|
|
|
|
|
expect(getHighlighterExpressionsFromQuery('{foo="bar"} |= "x" |~ "y"')).toEqual(['x', 'y']);
|
|
|
|
|
});
|
2019-07-02 09:06:04 +01:00
|
|
|
|
2019-05-13 09:58:26 +02:00
|
|
|
it('returns drops expressions for query with negative filter chain', () => {
|
|
|
|
|
expect(getHighlighterExpressionsFromQuery('{foo="bar"} |= "x" != "y"')).toEqual(['x']);
|
2018-11-30 15:49:54 +01:00
|
|
|
});
|
2019-07-02 09:06:04 +01:00
|
|
|
|
|
|
|
|
it('returns null if filter term is not wrapped in double quotes', () => {
|
2020-07-06 21:16:27 +02:00
|
|
|
expect(getHighlighterExpressionsFromQuery('{foo="bar"} |= x')).toEqual([]);
|
2019-07-02 09:06:04 +01:00
|
|
|
});
|
2020-01-16 16:09:49 +00:00
|
|
|
|
|
|
|
|
it('escapes filter term if regex filter operator is not used', () => {
|
|
|
|
|
expect(getHighlighterExpressionsFromQuery('{foo="bar"} |= "x[yz].w"')).toEqual(['x\\[yz\\]\\.w']);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('does not escape filter term if regex filter operator is used', () => {
|
|
|
|
|
expect(getHighlighterExpressionsFromQuery('{foo="bar"} |~ "x[yz].w" |~ "z.+"')).toEqual(['x[yz].w', 'z.+']);
|
|
|
|
|
});
|
2018-07-20 17:07:17 +02:00
|
|
|
});
|