mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Unified Search] Fix "Edit as Query DSL" breaks when pasting in entire query DSL (#131906)
* fix: added handle the case where .query already exists and filter has other top level keys on there * refact: handle the case where .query exists * fix: rollback refact handle the case where .query already exists * refact: replaced solution with pick lodash and added test * refact: remove the extra check in jest test
This commit is contained in:
parent
5d7372dfc0
commit
4557beb25b
2 changed files with 23 additions and 3 deletions
|
@ -9,6 +9,7 @@
|
|||
import { isEqual, cloneDeep } from 'lodash';
|
||||
import { migrateFilter, DeprecatedMatchPhraseFilter } from './migrate_filter';
|
||||
import { PhraseFilter, MatchAllFilter } from '../filters';
|
||||
import { Filter } from '../filters';
|
||||
|
||||
describe('migrateFilter', function () {
|
||||
const oldMatchPhraseFilter = {
|
||||
|
@ -66,7 +67,23 @@ describe('migrateFilter', function () {
|
|||
} as MatchAllFilter;
|
||||
const migratedFilter = migrateFilter(originalFilter, undefined);
|
||||
|
||||
expect(migratedFilter).toBe(originalFilter);
|
||||
expect(isEqual(migratedFilter, originalFilter)).toBe(true);
|
||||
expect(migratedFilter).toEqual(originalFilter);
|
||||
});
|
||||
|
||||
it('should handle the case where .query already exists and filter has other top level keys on there', function () {
|
||||
const originalFilter = {
|
||||
query: { match_all: {} },
|
||||
meta: {},
|
||||
size: 0,
|
||||
} as Filter;
|
||||
|
||||
const filterAfterMigrate = {
|
||||
query: { match_all: {} },
|
||||
meta: {},
|
||||
} as Filter;
|
||||
|
||||
const migratedFilter = migrateFilter(originalFilter, undefined);
|
||||
|
||||
expect(migratedFilter).toEqual(filterAfterMigrate);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { get, omit } from 'lodash';
|
||||
import { get, omit, pick } from 'lodash';
|
||||
import { getConvertedValueForField } from '../filters';
|
||||
import { Filter } from '../filters';
|
||||
import { DataViewBase } from './types';
|
||||
|
@ -65,6 +65,9 @@ export function migrateFilter(filter: Filter, indexPattern?: DataViewBase) {
|
|||
|
||||
if (!filter.query) {
|
||||
filter.query = {};
|
||||
} else {
|
||||
// handle the case where .query already exists and filter has other top level keys on there
|
||||
filter = pick(filter, ['meta', 'query', '$state']);
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue