Skip to content

Commit

Permalink
adding tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jgowdyelastic committed Jul 15, 2020
1 parent 872364d commit a04fdfd
Showing 1 changed file with 206 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

import { IUiSettingsClient } from 'kibana/public';
import { IIndexPattern } from '../../../../../../../../src/plugins/data/common/index_patterns';
import { SavedSearchSavedObject } from '../../../../../common/types/kibana';
import { createSearchItems } from './new_job_utils';

describe('createSearchItems', () => {
const savedSearch = ({
client: {
http: {
basePath: {
basePath: '/abc',
serverBasePath: '/abc',
},
anonymousPaths: {},
},
batchQueue: [],
},
attributes: {
title: 'not test',
description: '',
hits: 0,
columns: ['_source'],
sort: [],
version: 1,
kibanaSavedObjectMeta: {
searchSourceJSON: '',
},
},
_version: 'WzI0OSw0XQ==',
id: '4b9b1010-c678-11ea-b6e6-e942978fa29c',
type: 'search',
migrationVersion: {
search: '7.4.0',
},
references: [
{
name: 'kibanaSavedObjectMeta.searchSourceJSON.index',
type: 'index-pattern',
id: '7e252840-bd27-11ea-8a6c-75d1a0bd08ab',
},
],
} as unknown) as SavedSearchSavedObject;

const kibanaConfig = {} as IUiSettingsClient;
const indexPattern = ({
fields: [],
} as unknown) as IIndexPattern;

test('should match index pattern', () => {
const resp = createSearchItems(kibanaConfig, indexPattern, null);
expect(resp).toStrictEqual({
combinedQuery: { bool: { must: [{ match_all: {} }] } },
query: { query: '', language: 'lucene' },
});
});

test('should match saved search with kuery and condition', () => {
const searchSource = {
highlightAll: true,
version: true,
query: { query: 'airline : "AAL" ', language: 'kuery' },
filter: [],
indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index',
};
savedSearch.attributes.kibanaSavedObjectMeta.searchSourceJSON = JSON.stringify(searchSource);

const resp = createSearchItems(kibanaConfig, indexPattern, savedSearch);
expect(resp).toStrictEqual({
combinedQuery: {
bool: {
should: [{ match_phrase: { airline: 'AAL' } }],
minimum_should_match: 1,
filter: [],
must_not: [],
},
},
query: {
language: 'kuery',
query: 'airline : "AAL" ',
},
});
});

test('should match saved search with kuery and not condition', () => {
const searchSource = {
highlightAll: true,
version: true,
query: { query: 'NOT airline : "AAL" ', language: 'kuery' },
filter: [],
indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index',
};
savedSearch.attributes.kibanaSavedObjectMeta.searchSourceJSON = JSON.stringify(searchSource);

const resp = createSearchItems(kibanaConfig, indexPattern, savedSearch);
expect(resp).toStrictEqual({
combinedQuery: {
bool: {
filter: [],
must_not: [
{
bool: {
minimum_should_match: 1,
should: [
{
match_phrase: {
airline: 'AAL',
},
},
],
},
},
],
},
},
query: {
language: 'kuery',
query: 'NOT airline : "AAL" ',
},
});
});

test('should match saved search with kuery and condition and not condition', () => {
const searchSource = {
highlightAll: true,
version: true,
query: { query: 'airline : "AAL" and NOT airline : "AWE" ', language: 'kuery' },
filter: [],
indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index',
};
savedSearch.attributes.kibanaSavedObjectMeta.searchSourceJSON = JSON.stringify(searchSource);

const resp = createSearchItems(kibanaConfig, indexPattern, savedSearch);
expect(resp).toStrictEqual({
combinedQuery: {
bool: {
filter: [
{ bool: { should: [{ match_phrase: { airline: 'AAL' } }], minimum_should_match: 1 } },
{
bool: {
must_not: {
bool: { should: [{ match_phrase: { airline: 'AWE' } }], minimum_should_match: 1 },
},
},
},
],
must_not: [],
},
},
query: { query: 'airline : "AAL" and NOT airline : "AWE" ', language: 'kuery' },
});
});

test('should match saved search with kuery and filter', () => {
const searchSource = {
highlightAll: true,
version: true,
query: {
language: 'kuery',
query: '',
},
filter: [
{
meta: {
alias: null,
negate: false,
disabled: false,
type: 'phrase',
key: 'airline',
params: {
query: 'AAL',
},
indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index',
},
query: {
match_phrase: {
airline: 'AAL',
},
},
$state: {
store: 'appState',
},
},
],
indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index',
};
savedSearch.attributes.kibanaSavedObjectMeta.searchSourceJSON = JSON.stringify(searchSource);

const resp = createSearchItems(kibanaConfig, indexPattern, savedSearch);
expect(resp).toStrictEqual({
combinedQuery: {
bool: {
must: [{ match_all: {} }],
filter: [{ match_phrase: { airline: 'AAL' } }],
must_not: [],
},
},
query: { language: 'kuery', query: '' },
});
});
});

0 comments on commit a04fdfd

Please sign in to comment.