From b8faf091c90e539c4097db11bb2e5e0460693013 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Tue, 7 Sep 2021 10:18:22 -0600 Subject: [PATCH] [Maps] fix term join not updating when editing right field (#111030) * [Maps] fix term join not updating when editing right field * tslint * clean up Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../data_request_descriptor_types.ts | 5 ++--- .../es_term_source/es_term_source.test.js | 17 +++++++++++++++++ .../sources/es_term_source/es_term_source.ts | 14 +++++++------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts index d1690ddfff43..8e996934ef69 100644 --- a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts +++ b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts @@ -12,6 +12,7 @@ import { SortDirection } from 'src/plugins/data/common/search'; import { RENDER_AS, SCALING_TYPES } from '../constants'; import { MapExtent, MapQuery } from './map_descriptor'; import { Filter, TimeRange } from '../../../../../src/plugins/data/common'; +import { ESTermSourceDescriptor } from './source_descriptor_types'; export type Timeslice = { from: number; @@ -50,9 +51,7 @@ type ESGeoLineSourceSyncMeta = { sortField: string; }; -type ESTermSourceSyncMeta = { - size: number; -}; +export type ESTermSourceSyncMeta = Pick; export type VectorSourceSyncMeta = | ESSearchSourceSyncMeta diff --git a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js index 1f4a1ab7c9af..362b2b341714 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js +++ b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js @@ -109,3 +109,20 @@ describe('extractPropertiesMap', () => { expect(properties[minPropName]).toBe(0); }); }); + +describe('getSyncMeta', () => { + it('should contain meta requiring source re-fetch when changed', () => { + const source = new ESTermSource({ + id: '1234', + indexPatternTitle: indexPatternTitle, + term: termFieldName, + indexPatternId: 'foobar', + size: 10, + }); + expect(source.getSyncMeta()).toEqual({ + indexPatternId: 'foobar', + size: 10, + term: 'myTermField', + }); + }); +}); diff --git a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.ts b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.ts index caae4385aeec..93342d1167ae 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.ts @@ -25,8 +25,8 @@ import { } from '../../../../common/elasticsearch_util'; import { ESTermSourceDescriptor, + ESTermSourceSyncMeta, VectorJoinSourceRequestMeta, - VectorSourceSyncMeta, } from '../../../../common/descriptor_types'; import { Adapters } from '../../../../../../../src/plugins/inspector/common/adapters'; import { PropertiesMap } from '../../../../common/elasticsearch_util'; @@ -171,12 +171,12 @@ export class ESTermSource extends AbstractESAggSource implements ITermJoinSource return this.getMetricFields().map((esAggMetricField) => esAggMetricField.getName()); } - getSyncMeta(): VectorSourceSyncMeta | null { - return this._descriptor.size !== undefined - ? { - size: this._descriptor.size, - } - : null; + getSyncMeta(): ESTermSourceSyncMeta | null { + return { + indexPatternId: this._descriptor.indexPatternId, + size: this._descriptor.size, + term: this._descriptor.term, + }; } getRightFields(): IField[] {