From 1f25e167cf9c90d36391003e8f4ba0d9604c65b8 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Sat, 4 Apr 2020 17:08:51 +0300 Subject: [PATCH 1/7] removed getFieldFormats from aggConfig --- src/plugins/data/public/plugin.ts | 2 +- .../data/public/search/aggs/agg_config.ts | 22 ++++++++++++--- .../data/public/search/aggs/agg_configs.ts | 27 +++++++++++++++---- .../data/public/search/search_service.ts | 19 ++++++++++--- 4 files changed, 56 insertions(+), 14 deletions(-) diff --git a/src/plugins/data/public/plugin.ts b/src/plugins/data/public/plugin.ts index 15067077afc43..eac122ba40c87 100644 --- a/src/plugins/data/public/plugin.ts +++ b/src/plugins/data/public/plugin.ts @@ -155,7 +155,7 @@ export class DataPublicPlugin implements Plugin; /** @@ -67,6 +77,7 @@ export type IAggConfigs = AggConfigs; export class AggConfigs { public indexPattern: IndexPattern; + public fieldFormats: FieldFormatsStart; public timeRange?: TimeRange; private readonly typesRegistry: AggTypesRegistryStart; @@ -75,7 +86,8 @@ export class AggConfigs { constructor( indexPattern: IndexPattern, configStates: CreateAggConfigParams[] = [], - opts: AggConfigsOptions + opts: AggConfigsOptions, + { fieldFormats }: AggConfigsDependencies = tempAggConfigsDependencies ) { this.typesRegistry = opts.typesRegistry; @@ -83,6 +95,7 @@ export class AggConfigs { this.aggs = []; this.indexPattern = indexPattern; + this.fieldFormats = fieldFormats; configStates.forEach((params: any) => this.createAggConfig(params)); } @@ -129,10 +142,14 @@ export class AggConfigs { aggConfig = params; params.parent = this; } else { - aggConfig = new AggConfig(this, { - ...params, - type: typeof type === 'string' ? this.typesRegistry.get(type) : type, - }); + aggConfig = new AggConfig( + this, + { + ...params, + type: typeof type === 'string' ? this.typesRegistry.get(type) : type, + }, + { fieldFormats: this.fieldFormats } + ); } if (addToAggConfigs) { diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index 42f31ef450d28..af57f1505029c 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -42,12 +42,18 @@ import { siblingPipelineAggHelper, } from './aggs'; +import { FieldFormatsStart } from '../field_formats'; + interface SearchServiceSetupDependencies { packageInfo: PackageInfo; query: QuerySetup; getInternalStartServices: GetInternalStartServicesFn; } +interface SearchStartDependencies { + fieldFormats: FieldFormatsStart; +} + /** * The search plugin exposes two registration methods for other plugins: * - registerSearchStrategyProvider for plugins to add their own custom @@ -108,7 +114,7 @@ export class SearchService implements Plugin { }; } - public start(core: CoreStart): ISearchStart { + public start(core: CoreStart, { fieldFormats }: SearchStartDependencies): ISearchStart { /** * A global object that intercepts all searches and provides convenience methods for cancelling * all pending search requests, as well as getting the number of pending search requests. @@ -127,9 +133,14 @@ export class SearchService implements Plugin { aggs: { calculateAutoTimeExpression: getCalculateAutoTimeExpression(core.uiSettings), createAggConfigs: (indexPattern, configStates = [], schemas) => { - return new AggConfigs(indexPattern, configStates, { - typesRegistry: aggTypesStart, - }); + return new AggConfigs( + indexPattern, + configStates, + { + typesRegistry: aggTypesStart, + }, + { fieldFormats } + ); }, types: aggTypesStart, }, From 028bb7553e343406e9f8c07a52dc1598c8e15ca5 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Sat, 4 Apr 2020 17:17:14 +0300 Subject: [PATCH 2/7] made new properties is private --- src/plugins/data/public/search/aggs/agg_config.ts | 2 +- src/plugins/data/public/search/aggs/agg_configs.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/data/public/search/aggs/agg_config.ts b/src/plugins/data/public/search/aggs/agg_config.ts index e6cb27d8bee9f..328c73e19cdc0 100644 --- a/src/plugins/data/public/search/aggs/agg_config.ts +++ b/src/plugins/data/public/search/aggs/agg_config.ts @@ -98,11 +98,11 @@ export class AggConfig { public parent?: IAggConfigs; public brandNew?: boolean; public schema?: string; - public fieldFormats: FieldFormatsStart; private __type: IAggType; private __typeDecorations: any; private subAggs: AggConfig[] = []; + private fieldFormats: FieldFormatsStart; constructor( aggConfigs: IAggConfigs, diff --git a/src/plugins/data/public/search/aggs/agg_configs.ts b/src/plugins/data/public/search/aggs/agg_configs.ts index faba1c08bec7c..2e8020ba74049 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.ts @@ -77,8 +77,8 @@ export type IAggConfigs = AggConfigs; export class AggConfigs { public indexPattern: IndexPattern; - public fieldFormats: FieldFormatsStart; public timeRange?: TimeRange; + private fieldFormats: FieldFormatsStart; private readonly typesRegistry: AggTypesRegistryStart; aggs: IAggConfig[]; From 359984e503f5b76d60d4a67fd208861647e3888d Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Mon, 6 Apr 2020 12:28:07 +0300 Subject: [PATCH 3/7] Fixed ci --- src/plugins/data/public/search/aggs/agg_config.ts | 8 +++++--- src/plugins/data/public/search/aggs/agg_configs.ts | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/data/public/search/aggs/agg_config.ts b/src/plugins/data/public/search/aggs/agg_config.ts index 328c73e19cdc0..c9a1cb841e006 100644 --- a/src/plugins/data/public/search/aggs/agg_config.ts +++ b/src/plugins/data/public/search/aggs/agg_config.ts @@ -40,8 +40,10 @@ export interface AggConfigDependencies { fieldFormats: FieldFormatsStart; } -const tempAggConfigDependencies = { - fieldFormats: getFieldFormats(), +const tempAggConfigDependencies = () => { + return { + fieldFormats: getFieldFormats(), + }; }; /** @@ -107,7 +109,7 @@ export class AggConfig { constructor( aggConfigs: IAggConfigs, opts: AggConfigOptions, - { fieldFormats }: AggConfigDependencies = tempAggConfigDependencies + { fieldFormats }: AggConfigDependencies = tempAggConfigDependencies() ) { this.aggConfigs = aggConfigs; this.id = String(opts.id || AggConfig.nextId(aggConfigs.aggs as any)); diff --git a/src/plugins/data/public/search/aggs/agg_configs.ts b/src/plugins/data/public/search/aggs/agg_configs.ts index 2e8020ba74049..d311cb6e88fd7 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.ts @@ -55,8 +55,10 @@ export interface AggConfigsDependencies { fieldFormats: FieldFormatsStart; } -const tempAggConfigsDependencies = { - fieldFormats: getFieldFormats(), +const tempAggConfigsDependencies = () => { + return { + fieldFormats: getFieldFormats(), + }; }; export type CreateAggConfigParams = Assign; @@ -87,7 +89,7 @@ export class AggConfigs { indexPattern: IndexPattern, configStates: CreateAggConfigParams[] = [], opts: AggConfigsOptions, - { fieldFormats }: AggConfigsDependencies = tempAggConfigsDependencies + { fieldFormats }: AggConfigsDependencies = tempAggConfigsDependencies() ) { this.typesRegistry = opts.typesRegistry; From 497dfa2eba79aedc844507282b7289309871e388 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Tue, 7 Apr 2020 16:24:52 +0300 Subject: [PATCH 4/7] Fixed tests --- .../new_platform/new_platform.karma_mock.js | 13 +- .../public/search/aggs/agg_config.test.ts | 88 ++++++++++--- .../data/public/search/aggs/agg_config.ts | 9 +- .../public/search/aggs/agg_configs.test.ts | 123 ++++++++++++++---- .../data/public/search/aggs/agg_configs.ts | 9 +- .../_terms_other_bucket_helper.test.ts | 8 +- .../create_filter/date_histogram.test.ts | 3 +- .../buckets/create_filter/date_range.test.ts | 3 +- .../buckets/create_filter/filters.test.ts | 3 +- .../buckets/create_filter/histogram.test.ts | 9 +- .../buckets/create_filter/ip_range.test.ts | 9 +- .../aggs/buckets/create_filter/range.test.ts | 3 +- .../aggs/buckets/create_filter/terms.test.ts | 11 +- .../search/aggs/buckets/date_range.test.ts | 3 +- .../search/aggs/buckets/geo_hash.test.ts | 3 +- .../search/aggs/buckets/histogram.test.ts | 3 +- .../public/search/aggs/buckets/range.test.ts | 3 +- .../aggs/buckets/significant_terms.test.ts | 3 +- .../public/search/aggs/buckets/terms.test.ts | 9 +- .../public/search/aggs/metrics/median.test.ts | 3 +- .../aggs/metrics/parent_pipeline.test.ts | 3 +- .../aggs/metrics/percentile_ranks.test.ts | 3 +- .../search/aggs/metrics/percentiles.test.ts | 3 +- .../aggs/metrics/sibling_pipeline.test.ts | 3 +- .../search/aggs/metrics/std_deviation.test.ts | 3 +- .../search/aggs/metrics/top_hit.test.ts | 3 +- src/plugins/data/public/search/aggs/mocks.ts | 14 +- .../search/expressions/create_filter.test.ts | 9 +- .../public/search/tabify/get_columns.test.ts | 17 ++- .../search/tabify/response_writer.test.ts | 17 ++- .../data/public/search/tabify/tabify.test.ts | 17 ++- 31 files changed, 304 insertions(+), 106 deletions(-) diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index f70ef069dd134..c8bf2d1e88595 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -430,9 +430,16 @@ export const npStart = { aggs: { calculateAutoTimeExpression: sinon.fake(), createAggConfigs: (indexPattern, configStates = []) => { - return new AggConfigs(indexPattern, configStates, { - typesRegistry: aggTypesRegistry.start(), - }); + return new AggConfigs( + indexPattern, + configStates, + { + typesRegistry: aggTypesRegistry.start(), + }, + { + fieldFormats: getFieldFormatsRegistry(mockCoreStart), + } + ); }, types: aggTypesRegistry.start(), }, diff --git a/src/plugins/data/public/search/aggs/agg_config.test.ts b/src/plugins/data/public/search/aggs/agg_config.test.ts index 41d943ef0c94b..9fdd7f2736676 100644 --- a/src/plugins/data/public/search/aggs/agg_config.test.ts +++ b/src/plugins/data/public/search/aggs/agg_config.test.ts @@ -20,16 +20,20 @@ import { identity } from 'lodash'; import { AggConfig, IAggConfig } from './agg_config'; -import { AggConfigs, CreateAggConfigParams } from './agg_configs'; +import { AggConfigs, CreateAggConfigParams, AggConfigsDependencies } from './agg_configs'; import { AggType } from './agg_type'; import { AggTypesRegistryStart } from './agg_types_registry'; import { mockDataServices, mockAggTypesRegistry } from './test_helpers'; import { Field as IndexPatternField, IndexPattern } from '../../index_patterns'; import { stubIndexPatternWithFields } from '../../../public/stubs'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('AggConfig', () => { let indexPattern: IndexPattern; let typesRegistry: AggTypesRegistryStart; + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; beforeEach(() => { jest.restoreAllMocks(); @@ -40,7 +44,7 @@ describe('AggConfig', () => { describe('#toDsl', () => { it('calls #write()', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }); + const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); const configStates = { enabled: true, type: 'date_histogram', @@ -55,7 +59,7 @@ describe('AggConfig', () => { }); it('uses the type name as the agg name', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }); + const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); const configStates = { enabled: true, type: 'date_histogram', @@ -70,7 +74,7 @@ describe('AggConfig', () => { }); it('uses the params from #write() output as the agg params', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }); + const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); const configStates = { enabled: true, type: 'date_histogram', @@ -100,7 +104,12 @@ describe('AggConfig', () => { params: {}, }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const histoConfig = ac.byName('date_histogram')[0]; const avgConfig = ac.byName('avg')[0]; @@ -210,8 +219,18 @@ describe('AggConfig', () => { testsIdentical.forEach((configState, index) => { it(`identical aggregations (${index})`, () => { - const ac1 = new AggConfigs(indexPattern, configState, { typesRegistry }); - const ac2 = new AggConfigs(indexPattern, configState, { typesRegistry }); + const ac1 = new AggConfigs( + indexPattern, + configState, + { typesRegistry }, + aggConfigsDependencies + ); + const ac2 = new AggConfigs( + indexPattern, + configState, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac1.jsonDataEquals(ac2.aggs)).toBe(true); }); }); @@ -251,8 +270,18 @@ describe('AggConfig', () => { testsIdenticalDifferentOrder.forEach((test, index) => { it(`identical aggregations (${index}) - init json is in different order`, () => { - const ac1 = new AggConfigs(indexPattern, test.config1, { typesRegistry }); - const ac2 = new AggConfigs(indexPattern, test.config2, { typesRegistry }); + const ac1 = new AggConfigs( + indexPattern, + test.config1, + { typesRegistry }, + aggConfigsDependencies + ); + const ac2 = new AggConfigs( + indexPattern, + test.config2, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac1.jsonDataEquals(ac2.aggs)).toBe(true); }); }); @@ -316,8 +345,18 @@ describe('AggConfig', () => { testsDifferent.forEach((test, index) => { it(`different aggregations (${index})`, () => { - const ac1 = new AggConfigs(indexPattern, test.config1, { typesRegistry }); - const ac2 = new AggConfigs(indexPattern, test.config2, { typesRegistry }); + const ac1 = new AggConfigs( + indexPattern, + test.config1, + { typesRegistry }, + aggConfigsDependencies + ); + const ac2 = new AggConfigs( + indexPattern, + test.config2, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac1.jsonDataEquals(ac2.aggs)).toBe(false); }); }); @@ -325,7 +364,7 @@ describe('AggConfig', () => { describe('#toJSON', () => { it('includes the aggs id, params, type and schema', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }); + const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); const configStates = { enabled: true, type: 'date_histogram', @@ -356,8 +395,18 @@ describe('AggConfig', () => { params: {}, }, ]; - const ac1 = new AggConfigs(indexPattern, configStates, { typesRegistry }); - const ac2 = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac1 = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); + const ac2 = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); // this relies on the assumption that js-engines consistently loop over properties in insertion order. // most likely the case, but strictly speaking not guaranteed by the JS and JSON specifications. @@ -369,7 +418,7 @@ describe('AggConfig', () => { let aggConfig: AggConfig; beforeEach(() => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }); + const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); aggConfig = ac.createAggConfig({ type: 'count' } as CreateAggConfigParams); }); @@ -398,7 +447,7 @@ describe('AggConfig', () => { describe('#fieldFormatter - custom getFormat handler', () => { it('returns formatter from getFormat handler', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }); + const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); const configStates = { enabled: true, type: 'count', @@ -439,7 +488,12 @@ describe('AggConfig', () => { }, }, }; - const ac = new AggConfigs(indexPattern, [configStates], { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + [configStates], + { typesRegistry }, + aggConfigsDependencies + ); aggConfig = ac.createAggConfig(configStates); }); diff --git a/src/plugins/data/public/search/aggs/agg_config.ts b/src/plugins/data/public/search/aggs/agg_config.ts index c9a1cb841e006..9c9ca623e366b 100644 --- a/src/plugins/data/public/search/aggs/agg_config.ts +++ b/src/plugins/data/public/search/aggs/agg_config.ts @@ -25,7 +25,6 @@ import { IAggConfigs } from './agg_configs'; import { FetchOptions } from '../fetch'; import { ISearchSource } from '../search_source'; import { FieldFormatsContentType, KBN_FIELD_TYPES } from '../../../common'; -import { getFieldFormats } from '../../../public/services'; import { FieldFormatsStart } from '../../field_formats'; export interface AggConfigOptions { @@ -40,12 +39,6 @@ export interface AggConfigDependencies { fieldFormats: FieldFormatsStart; } -const tempAggConfigDependencies = () => { - return { - fieldFormats: getFieldFormats(), - }; -}; - /** * @name AggConfig * @@ -109,7 +102,7 @@ export class AggConfig { constructor( aggConfigs: IAggConfigs, opts: AggConfigOptions, - { fieldFormats }: AggConfigDependencies = tempAggConfigDependencies() + { fieldFormats }: AggConfigDependencies ) { this.aggConfigs = aggConfigs; this.id = String(opts.id || AggConfig.nextId(aggConfigs.aggs as any)); diff --git a/src/plugins/data/public/search/aggs/agg_configs.test.ts b/src/plugins/data/public/search/aggs/agg_configs.test.ts index e20e6de6112a8..72e8ee4af4778 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.test.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.test.ts @@ -19,15 +19,19 @@ import { indexBy } from 'lodash'; import { AggConfig } from './agg_config'; -import { AggConfigs } from './agg_configs'; +import { AggConfigs, AggConfigsDependencies } from './agg_configs'; import { AggTypesRegistryStart } from './agg_types_registry'; import { mockDataServices, mockAggTypesRegistry } from './test_helpers'; import { Field as IndexPatternField, IndexPattern } from '../../index_patterns'; import { stubIndexPattern, stubIndexPatternWithFields } from '../../../public/stubs'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('AggConfigs', () => { let indexPattern: IndexPattern; let typesRegistry: AggTypesRegistryStart; + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; beforeEach(() => { mockDataServices(); @@ -45,7 +49,12 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac.aggs).toHaveLength(1); }); @@ -70,7 +79,7 @@ describe('AggConfigs', () => { ]; const spy = jest.spyOn(AggConfig, 'ensureIds'); - new AggConfigs(indexPattern, configStates, { typesRegistry }); + new AggConfigs(indexPattern, configStates, { typesRegistry }, aggConfigsDependencies); expect(spy).toHaveBeenCalledTimes(1); expect(spy.mock.calls[0]).toEqual([configStates]); spy.mockRestore(); @@ -92,16 +101,25 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac.aggs).toHaveLength(2); ac.createAggConfig( - new AggConfig(ac, { - enabled: true, - type: typesRegistry.get('terms'), - params: {}, - schema: 'split', - }) + new AggConfig( + ac, + { + enabled: true, + type: typesRegistry.get('terms'), + params: {}, + schema: 'split', + }, + aggConfigsDependencies + ) ); expect(ac.aggs).toHaveLength(3); }); @@ -115,7 +133,12 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac.aggs).toHaveLength(1); ac.createAggConfig({ @@ -136,7 +159,12 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); expect(ac.aggs).toHaveLength(1); ac.createAggConfig( @@ -164,7 +192,12 @@ describe('AggConfigs', () => { { type: 'percentiles', enabled: true, params: {}, schema: 'metric' }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const sorted = ac.getRequestAggs(); const aggs = indexBy(ac.aggs, agg => agg.type.name); @@ -187,7 +220,12 @@ describe('AggConfigs', () => { { type: 'count', enabled: true, params: {}, schema: 'metric' }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const sorted = ac.getResponseAggs(); const aggs = indexBy(ac.aggs, agg => agg.type.name); @@ -204,7 +242,12 @@ describe('AggConfigs', () => { { type: 'percentiles', enabled: true, params: { percents: [1, 2, 3] }, schema: 'metric' }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const sorted = ac.getResponseAggs(); const aggs = indexBy(ac.aggs, agg => agg.type.name); @@ -225,7 +268,12 @@ describe('AggConfigs', () => { it('uses the sorted aggs', () => { const configStates = [{ enabled: true, type: 'avg', params: { field: 'bytes' } }]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const spy = jest.spyOn(AggConfigs.prototype, 'getRequestAggs'); ac.toDsl(); expect(spy).toHaveBeenCalledTimes(1); @@ -239,9 +287,14 @@ describe('AggConfigs', () => { { enabled: true, type: 'count', params: {} }, ]; - const ac = new AggConfigs(indexPattern, configStates, { - typesRegistry, - }); + const ac = new AggConfigs( + indexPattern, + configStates, + { + typesRegistry, + }, + aggConfigsDependencies + ); const aggInfos = ac.aggs.map(aggConfig => { const football = {}; @@ -284,7 +337,12 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const dsl = ac.toDsl(); const histo = ac.byName('date_histogram')[0]; const count = ac.byName('count')[0]; @@ -309,9 +367,14 @@ describe('AggConfigs', () => { { enabled: true, type: 'max', schema: 'metric', params: { field: 'bytes' } }, ]; - const ac = new AggConfigs(indexPattern, configStates, { - typesRegistry, - }); + const ac = new AggConfigs( + indexPattern, + configStates, + { + typesRegistry, + }, + aggConfigsDependencies + ); const dsl = ac.toDsl(); const histo = ac.byName('date_histogram')[0]; const metrics = ac.bySchemaName('metrics'); @@ -336,7 +399,12 @@ describe('AggConfigs', () => { { enabled: true, type: 'max', schema: 'metric', params: { field: 'bytes' } }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const topLevelDsl = ac.toDsl(true); const buckets = ac.bySchemaName('buckets'); const metrics = ac.bySchemaName('metrics'); @@ -406,7 +474,12 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs(indexPattern, configStates, { typesRegistry }); + const ac = new AggConfigs( + indexPattern, + configStates, + { typesRegistry }, + aggConfigsDependencies + ); const topLevelDsl = ac.toDsl(true)['2']; expect(Object.keys(topLevelDsl.aggs)).toContain('1'); diff --git a/src/plugins/data/public/search/aggs/agg_configs.ts b/src/plugins/data/public/search/aggs/agg_configs.ts index d311cb6e88fd7..36e47b14b072d 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.ts @@ -29,7 +29,6 @@ import { ISearchSource } from '../search_source'; import { FetchOptions } from '../fetch'; import { TimeRange } from '../../../common'; import { FieldFormatsStart } from '../../field_formats'; -import { getFieldFormats } from '../../../public/services'; function removeParentAggs(obj: any) { for (const prop in obj) { @@ -55,12 +54,6 @@ export interface AggConfigsDependencies { fieldFormats: FieldFormatsStart; } -const tempAggConfigsDependencies = () => { - return { - fieldFormats: getFieldFormats(), - }; -}; - export type CreateAggConfigParams = Assign; /** @@ -89,7 +82,7 @@ export class AggConfigs { indexPattern: IndexPattern, configStates: CreateAggConfigParams[] = [], opts: AggConfigsOptions, - { fieldFormats }: AggConfigsDependencies = tempAggConfigsDependencies() + { fieldFormats }: AggConfigsDependencies ) { this.typesRegistry = opts.typesRegistry; diff --git a/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts b/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts index c664325a168b1..59922bfd91ed3 100644 --- a/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts @@ -22,10 +22,11 @@ import { mergeOtherBucketAggResponse, updateMissingBucket, } from './_terms_other_bucket_helper'; -import { AggConfigs, CreateAggConfigParams } from '../agg_configs'; +import { AggConfigs, CreateAggConfigParams, AggConfigsDependencies } from '../agg_configs'; import { BUCKET_TYPES } from './bucket_agg_types'; import { IBucketAggConfig } from './bucket_agg_type'; import { mockAggTypesRegistry } from '../test_helpers'; +import { fieldFormatsServiceMock } from '../../../field_formats/mocks'; const indexPattern = { id: '1234', @@ -219,8 +220,11 @@ const nestedOtherResponse = { describe('Terms Agg Other bucket helper', () => { const typesRegistry = mockAggTypesRegistry(); + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const getAggConfigs = (aggs: CreateAggConfigParams[] = []) => { - return new AggConfigs(indexPattern, [...aggs], { typesRegistry }); + return new AggConfigs(indexPattern, [...aggs], { typesRegistry }, aggConfigsDependencies); }; describe('buildOtherBucketAgg', () => { diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts index 97c940b4ff4b1..85016795d8f4f 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts @@ -78,7 +78,8 @@ describe('AggConfig Filters', () => { params: { field: field.name, interval, customInterval: '5d' }, }, ], - { typesRegistry: mockAggTypesRegistry([getDateHistogramBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getDateHistogramBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); const bucketKey = 1422579600000; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts index 8c0466b769a7e..e187340fecea6 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts @@ -72,7 +72,8 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts index f5a0b5a7b9094..26bf71651d000 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts @@ -69,7 +69,8 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getFiltersBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getFiltersBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts index 18b388be74877..845412035e28c 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts @@ -18,15 +18,19 @@ */ import { createFilterHistogram } from './histogram'; -import { AggConfigs } from '../../agg_configs'; +import { AggConfigs, AggConfigsDependencies } from '../../agg_configs'; import { mockAggTypesRegistry } from '../../test_helpers'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../bucket_agg_type'; import { BytesFormat, FieldFormatsGetConfigFn } from '../../../../../common'; +import { fieldFormatsServiceMock } from '../../../../field_formats/mocks'; describe('AggConfig Filters', () => { describe('histogram', () => { const getConfig = (() => {}) as FieldFormatsGetConfigFn; + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const getAggConfigs = () => { const field = { name: 'bytes', @@ -55,7 +59,8 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry() } + { typesRegistry: mockAggTypesRegistry() }, + aggConfigsDependencies ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts index b528313b080d0..0466536c057b1 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts @@ -19,7 +19,7 @@ import { getIpRangeBucketAgg } from '../ip_range'; import { createFilterIpRange } from './ip_range'; -import { AggConfigs, CreateAggConfigParams } from '../../agg_configs'; +import { AggConfigs, CreateAggConfigParams, AggConfigsDependencies } from '../../agg_configs'; import { mockAggTypesRegistry } from '../../test_helpers'; import { IpFormat } from '../../../../../common'; import { BUCKET_TYPES } from '../bucket_agg_types'; @@ -29,10 +29,13 @@ import { notificationServiceMock } from '../../../../../../../core/public/mocks' describe('AggConfig Filters', () => { describe('IP range', () => { + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const typesRegistry = mockAggTypesRegistry([ getIpRangeBucketAgg({ getInternalStartServices: () => ({ - fieldFormats: fieldFormatsServiceMock.createStartContract(), + fieldFormats: aggConfigsDependencies.fieldFormats, notifications: notificationServiceMock.createStartContract(), }), }), @@ -52,7 +55,7 @@ describe('AggConfig Filters', () => { }, } as any; - return new AggConfigs(indexPattern, aggs, { typesRegistry }); + return new AggConfigs(indexPattern, aggs, { typesRegistry }, aggConfigsDependencies); }; test('should return a range filter for ip_range agg', () => { diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts index 14a7538aa95a4..7605ff7d98d32 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts @@ -71,7 +71,8 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts index c11a7d1a4e6b8..7871c5d339084 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts @@ -56,9 +56,14 @@ describe('AggConfig Filters', () => { indexPattern, }; - return new AggConfigs(indexPattern, aggs, { - typesRegistry: mockAggTypesRegistry([getTermsBucketAgg(aggTypesDependencies)]), - }); + return new AggConfigs( + indexPattern, + aggs, + { + typesRegistry: mockAggTypesRegistry([getTermsBucketAgg(aggTypesDependencies)]), + }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + ); }; test('should return a match_phrase filter for terms', () => { diff --git a/src/plugins/data/public/search/aggs/buckets/date_range.test.ts b/src/plugins/data/public/search/aggs/buckets/date_range.test.ts index c050620c3a856..3ec48189d0795 100644 --- a/src/plugins/data/public/search/aggs/buckets/date_range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/date_range.test.ts @@ -74,7 +74,8 @@ describe('date_range params', () => { params, }, ], - { typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts b/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts index 24270dd33a576..226fdcc1fb85b 100644 --- a/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts @@ -77,7 +77,8 @@ describe('Geohash Agg', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry() } + { typesRegistry: mockAggTypesRegistry() }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/histogram.test.ts b/src/plugins/data/public/search/aggs/buckets/histogram.test.ts index bbfc263df4268..7a84293499ae4 100644 --- a/src/plugins/data/public/search/aggs/buckets/histogram.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/histogram.test.ts @@ -70,7 +70,8 @@ describe('Histogram Agg', () => { params, }, ], - { typesRegistry: mockAggTypesRegistry([getHistogramBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getHistogramBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/range.test.ts b/src/plugins/data/public/search/aggs/buckets/range.test.ts index a1f0ab6a2326a..70adb75328971 100644 --- a/src/plugins/data/public/search/aggs/buckets/range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/range.test.ts @@ -95,7 +95,8 @@ describe('Range Agg', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]) } + { typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]) }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts b/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts index 761d0ced6a114..64e3f1bfb1814 100644 --- a/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts @@ -70,7 +70,8 @@ describe('Significant Terms Agg', () => { typesRegistry: mockAggTypesRegistry([ getSignificantTermsBucketAgg(aggTypesDependencies), ]), - } + }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/terms.test.ts b/src/plugins/data/public/search/aggs/buckets/terms.test.ts index 5afe7d0b0c35c..5eaae663f80a2 100644 --- a/src/plugins/data/public/search/aggs/buckets/terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/terms.test.ts @@ -17,12 +17,16 @@ * under the License. */ -import { AggConfigs } from '../agg_configs'; +import { AggConfigs, AggConfigsDependencies } from '../agg_configs'; import { mockAggTypesRegistry } from '../test_helpers'; import { BUCKET_TYPES } from './bucket_agg_types'; +import { fieldFormatsServiceMock } from '../../../field_formats/mocks'; describe('Terms Agg', () => { describe('order agg editor UI', () => { + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const getAggConfigs = (params: Record = {}) => { const indexPattern = { id: '1234', @@ -47,7 +51,8 @@ describe('Terms Agg', () => { type: BUCKET_TYPES.TERMS, }, ], - { typesRegistry: mockAggTypesRegistry() } + { typesRegistry: mockAggTypesRegistry() }, + aggConfigsDependencies ); }; diff --git a/src/plugins/data/public/search/aggs/metrics/median.test.ts b/src/plugins/data/public/search/aggs/metrics/median.test.ts index f80c46026f50a..c5787b9d4b833 100644 --- a/src/plugins/data/public/search/aggs/metrics/median.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/median.test.ts @@ -59,7 +59,8 @@ describe('AggTypeMetricMedianProvider class', () => { }, }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }); diff --git a/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts b/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts index af983a50f6c23..46005535610b2 100644 --- a/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts @@ -110,7 +110,8 @@ describe('parent pipeline aggs', function() { schema: 'metric', }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: getInternalStartServices().fieldFormats } ); // Grab the aggConfig off the vis (we don't actually use the vis for anything else) diff --git a/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts b/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts index 2944fc8c11b23..dd292dbc2781e 100644 --- a/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts @@ -70,7 +70,8 @@ describe('AggTypesMetricsPercentileRanksProvider class', function() { }, }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }); diff --git a/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts b/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts index 33bd42df74cc7..7a132b5c21fd2 100644 --- a/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts @@ -70,7 +70,8 @@ describe('AggTypesMetricsPercentilesProvider class', () => { }, }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }); diff --git a/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts b/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts index ab480fe44227e..282a2cc4a1527 100644 --- a/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts @@ -111,7 +111,8 @@ describe('sibling pipeline aggs', () => { }, }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: getInternalStartServices().fieldFormats } ); // Grab the aggConfig off the vis (we don't actually use the vis for anything else) diff --git a/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts b/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts index 6bbff3009cc11..c19965d40e83d 100644 --- a/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts @@ -64,7 +64,8 @@ describe('AggTypeMetricStandardDeviationProvider class', () => { }, }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts b/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts index 8294ad09bae22..f685c45d5001a 100644 --- a/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts @@ -89,7 +89,8 @@ describe('Top hit metric', () => { params, }, ], - { typesRegistry } + { typesRegistry }, + { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); // Grab the aggConfig off the vis (we don't actually use the vis for anything else) diff --git a/src/plugins/data/public/search/aggs/mocks.ts b/src/plugins/data/public/search/aggs/mocks.ts index 7a5dcc9be4592..c78a486855dad 100644 --- a/src/plugins/data/public/search/aggs/mocks.ts +++ b/src/plugins/data/public/search/aggs/mocks.ts @@ -27,6 +27,7 @@ import { } from './'; import { SearchAggsSetup, SearchAggsStart } from './types'; import { mockAggTypesRegistry } from './test_helpers'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; const aggTypeBaseParamMock = () => ({ name: 'some_param', @@ -70,9 +71,16 @@ export const searchAggsSetupMock = (): SearchAggsSetup => ({ export const searchAggsStartMock = (): SearchAggsStart => ({ calculateAutoTimeExpression: getCalculateAutoTimeExpression(coreMock.createStart().uiSettings), createAggConfigs: jest.fn().mockImplementation((indexPattern, configStates = [], schemas) => { - return new AggConfigs(indexPattern, configStates, { - typesRegistry: mockAggTypesRegistry(), - }); + return new AggConfigs( + indexPattern, + configStates, + { + typesRegistry: mockAggTypesRegistry(), + }, + { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + } + ); }), types: mockAggTypesRegistry(), }); diff --git a/src/plugins/data/public/search/expressions/create_filter.test.ts b/src/plugins/data/public/search/expressions/create_filter.test.ts index 23da060cba203..37a045b3fa60b 100644 --- a/src/plugins/data/public/search/expressions/create_filter.test.ts +++ b/src/plugins/data/public/search/expressions/create_filter.test.ts @@ -18,14 +18,18 @@ */ import { createFilter } from './create_filter'; -import { AggConfigs, IAggConfig } from '../aggs'; +import { AggConfigs, IAggConfig, AggConfigsDependencies } from '../aggs'; import { TabbedTable } from '../tabify'; import { isRangeFilter, BytesFormat, FieldFormatsGetConfigFn } from '../../../common'; import { mockDataServices, mockAggTypesRegistry } from '../aggs/test_helpers'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('createFilter', () => { let table: TabbedTable; let aggConfig: IAggConfig; + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const typesRegistry = mockAggTypesRegistry(); @@ -58,7 +62,8 @@ describe('createFilter', () => { params, }, ], - { typesRegistry } + { typesRegistry }, + aggConfigsDependencies ); }; diff --git a/src/plugins/data/public/search/tabify/get_columns.test.ts b/src/plugins/data/public/search/tabify/get_columns.test.ts index b7dadc3f65d82..c30f3183511d3 100644 --- a/src/plugins/data/public/search/tabify/get_columns.test.ts +++ b/src/plugins/data/public/search/tabify/get_columns.test.ts @@ -19,8 +19,9 @@ import { tabifyGetColumns } from './get_columns'; import { TabbedAggColumn } from './types'; -import { AggConfigs } from '../aggs'; +import { AggConfigs, AggConfigsDependencies } from '../aggs'; import { mockAggTypesRegistry, mockDataServices } from '../aggs/test_helpers'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('get columns', () => { beforeEach(() => { @@ -28,6 +29,9 @@ describe('get columns', () => { }); const typesRegistry = mockAggTypesRegistry(); + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const createAggConfigs = (aggs: any[] = []) => { const field = { @@ -43,9 +47,14 @@ describe('get columns', () => { }, } as any; - return new AggConfigs(indexPattern, aggs, { - typesRegistry, - }); + return new AggConfigs( + indexPattern, + aggs, + { + typesRegistry, + }, + aggConfigsDependencies + ); }; test('should inject the metric after each bucket if the vis is hierarchical', () => { diff --git a/src/plugins/data/public/search/tabify/response_writer.test.ts b/src/plugins/data/public/search/tabify/response_writer.test.ts index 52338ae79ccbb..1766f4ab72de5 100644 --- a/src/plugins/data/public/search/tabify/response_writer.test.ts +++ b/src/plugins/data/public/search/tabify/response_writer.test.ts @@ -18,9 +18,10 @@ */ import { TabbedAggResponseWriter } from './response_writer'; -import { AggConfigs, BUCKET_TYPES } from '../aggs'; +import { AggConfigs, BUCKET_TYPES, AggConfigsDependencies } from '../aggs'; import { mockDataServices, mockAggTypesRegistry } from '../aggs/test_helpers'; import { TabbedResponseWriterOptions } from './types'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('TabbedAggResponseWriter class', () => { beforeEach(() => { @@ -30,6 +31,9 @@ describe('TabbedAggResponseWriter class', () => { let responseWriter: TabbedAggResponseWriter; const typesRegistry = mockAggTypesRegistry(); + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const splitAggConfig = [ { @@ -72,9 +76,14 @@ describe('TabbedAggResponseWriter class', () => { } as any; return new TabbedAggResponseWriter( - new AggConfigs(indexPattern, aggs, { - typesRegistry, - }), + new AggConfigs( + indexPattern, + aggs, + { + typesRegistry, + }, + aggConfigsDependencies + ), { metricsAtAllLevels: false, partialRows: false, diff --git a/src/plugins/data/public/search/tabify/tabify.test.ts b/src/plugins/data/public/search/tabify/tabify.test.ts index c9bf04ae9f0fc..7c9002bd5aa67 100644 --- a/src/plugins/data/public/search/tabify/tabify.test.ts +++ b/src/plugins/data/public/search/tabify/tabify.test.ts @@ -19,12 +19,16 @@ import { tabifyAggResponse } from './tabify'; import { IndexPattern } from '../../index_patterns'; -import { AggConfigs, IAggConfig, IAggConfigs } from '../aggs'; +import { AggConfigs, IAggConfig, IAggConfigs, AggConfigsDependencies } from '../aggs'; import { mockAggTypesRegistry } from '../aggs/test_helpers'; import { metricOnly, threeTermBuckets } from 'fixtures/fake_hierarchical_data'; +import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('tabifyAggResponse Integration', () => { const typesRegistry = mockAggTypesRegistry(); + const aggConfigsDependencies: AggConfigsDependencies = { + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }; const createAggConfigs = (aggs: IAggConfig[] = []) => { const field = { @@ -40,9 +44,14 @@ describe('tabifyAggResponse Integration', () => { }, } as unknown) as IndexPattern; - return new AggConfigs(indexPattern, aggs, { - typesRegistry, - }); + return new AggConfigs( + indexPattern, + aggs, + { + typesRegistry, + }, + aggConfigsDependencies + ); }; const mockAggConfig = (agg: any): IAggConfig => (agg as unknown) as IAggConfig; From e574b067da0bc5d4e8807718764d2594883be7a9 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Tue, 7 Apr 2020 17:04:33 +0300 Subject: [PATCH 5/7] Fixes clone method --- src/plugins/data/public/search/aggs/agg_configs.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/data/public/search/aggs/agg_configs.ts b/src/plugins/data/public/search/aggs/agg_configs.ts index 36e47b14b072d..7c6cacd3bb7e9 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.ts @@ -119,9 +119,16 @@ export class AggConfigs { return agg.enabled; }; - const aggConfigs = new AggConfigs(this.indexPattern, this.aggs.filter(filterAggs), { - typesRegistry: this.typesRegistry, - }); + const aggConfigs = new AggConfigs( + this.indexPattern, + this.aggs.filter(filterAggs), + { + typesRegistry: this.typesRegistry, + }, + { + fieldFormats: this.fieldFormats, + } + ); return aggConfigs; } From 0d16960c9bb8c454dec428be91e33c9490fa4062 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Thu, 9 Apr 2020 16:37:57 +0300 Subject: [PATCH 6/7] move filedFotmats inside opt fro AggConfigs --- .../new_platform/new_platform.karma_mock.js | 14 +-- .../public/search/aggs/agg_config.test.ts | 88 +++----------- .../public/search/aggs/agg_configs.test.ts | 111 ++++-------------- .../data/public/search/aggs/agg_configs.ts | 22 +--- .../_terms_other_bucket_helper.test.ts | 9 +- .../create_filter/date_histogram.test.ts | 6 +- .../buckets/create_filter/date_range.test.ts | 6 +- .../buckets/create_filter/filters.test.ts | 6 +- .../buckets/create_filter/histogram.test.ts | 9 +- .../buckets/create_filter/ip_range.test.ts | 10 +- .../aggs/buckets/create_filter/range.test.ts | 6 +- .../aggs/buckets/create_filter/terms.test.ts | 12 +- .../search/aggs/buckets/date_range.test.ts | 6 +- .../search/aggs/buckets/geo_hash.test.ts | 6 +- .../search/aggs/buckets/histogram.test.ts | 6 +- .../public/search/aggs/buckets/range.test.ts | 6 +- .../aggs/buckets/significant_terms.test.ts | 4 +- .../public/search/aggs/buckets/terms.test.ts | 9 +- .../public/search/aggs/metrics/median.test.ts | 6 +- .../aggs/metrics/parent_pipeline.test.ts | 3 +- .../aggs/metrics/percentile_ranks.test.ts | 3 +- .../search/aggs/metrics/percentiles.test.ts | 3 +- .../aggs/metrics/sibling_pipeline.test.ts | 3 +- .../search/aggs/metrics/std_deviation.test.ts | 3 +- .../search/aggs/metrics/top_hit.test.ts | 3 +- src/plugins/data/public/search/aggs/mocks.ts | 14 +-- .../search/expressions/create_filter.test.ts | 9 +- .../data/public/search/search_service.ts | 12 +- .../public/search/tabify/get_columns.test.ts | 18 +-- .../search/tabify/response_writer.test.ts | 18 +-- .../data/public/search/tabify/tabify.test.ts | 18 +-- 31 files changed, 142 insertions(+), 307 deletions(-) diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index 9078bfe784aab..f56386a2cbf43 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -445,16 +445,10 @@ export const npStart = { aggs: { calculateAutoTimeExpression: sinon.fake(), createAggConfigs: (indexPattern, configStates = []) => { - return new AggConfigs( - indexPattern, - configStates, - { - typesRegistry: aggTypesRegistry.start(), - }, - { - fieldFormats: getFieldFormatsRegistry(mockCoreStart), - } - ); + return new AggConfigs(indexPattern, configStates, { + typesRegistry: aggTypesRegistry.start(), + fieldFormats: getFieldFormatsRegistry(mockCoreStart), + }); }, types: aggTypesRegistry.start(), }, diff --git a/src/plugins/data/public/search/aggs/agg_config.test.ts b/src/plugins/data/public/search/aggs/agg_config.test.ts index 9fdd7f2736676..2813e3b9c5373 100644 --- a/src/plugins/data/public/search/aggs/agg_config.test.ts +++ b/src/plugins/data/public/search/aggs/agg_config.test.ts @@ -20,7 +20,7 @@ import { identity } from 'lodash'; import { AggConfig, IAggConfig } from './agg_config'; -import { AggConfigs, CreateAggConfigParams, AggConfigsDependencies } from './agg_configs'; +import { AggConfigs, CreateAggConfigParams } from './agg_configs'; import { AggType } from './agg_type'; import { AggTypesRegistryStart } from './agg_types_registry'; import { mockDataServices, mockAggTypesRegistry } from './test_helpers'; @@ -31,9 +31,7 @@ import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('AggConfig', () => { let indexPattern: IndexPattern; let typesRegistry: AggTypesRegistryStart; - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); beforeEach(() => { jest.restoreAllMocks(); @@ -44,7 +42,7 @@ describe('AggConfig', () => { describe('#toDsl', () => { it('calls #write()', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); + const ac = new AggConfigs(indexPattern, [], { typesRegistry, fieldFormats }); const configStates = { enabled: true, type: 'date_histogram', @@ -59,7 +57,7 @@ describe('AggConfig', () => { }); it('uses the type name as the agg name', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); + const ac = new AggConfigs(indexPattern, [], { typesRegistry, fieldFormats }); const configStates = { enabled: true, type: 'date_histogram', @@ -74,7 +72,7 @@ describe('AggConfig', () => { }); it('uses the params from #write() output as the agg params', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); + const ac = new AggConfigs(indexPattern, [], { typesRegistry, fieldFormats }); const configStates = { enabled: true, type: 'date_histogram', @@ -104,12 +102,7 @@ describe('AggConfig', () => { params: {}, }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const histoConfig = ac.byName('date_histogram')[0]; const avgConfig = ac.byName('avg')[0]; @@ -219,18 +212,8 @@ describe('AggConfig', () => { testsIdentical.forEach((configState, index) => { it(`identical aggregations (${index})`, () => { - const ac1 = new AggConfigs( - indexPattern, - configState, - { typesRegistry }, - aggConfigsDependencies - ); - const ac2 = new AggConfigs( - indexPattern, - configState, - { typesRegistry }, - aggConfigsDependencies - ); + const ac1 = new AggConfigs(indexPattern, configState, { typesRegistry, fieldFormats }); + const ac2 = new AggConfigs(indexPattern, configState, { typesRegistry, fieldFormats }); expect(ac1.jsonDataEquals(ac2.aggs)).toBe(true); }); }); @@ -270,18 +253,8 @@ describe('AggConfig', () => { testsIdenticalDifferentOrder.forEach((test, index) => { it(`identical aggregations (${index}) - init json is in different order`, () => { - const ac1 = new AggConfigs( - indexPattern, - test.config1, - { typesRegistry }, - aggConfigsDependencies - ); - const ac2 = new AggConfigs( - indexPattern, - test.config2, - { typesRegistry }, - aggConfigsDependencies - ); + const ac1 = new AggConfigs(indexPattern, test.config1, { typesRegistry, fieldFormats }); + const ac2 = new AggConfigs(indexPattern, test.config2, { typesRegistry, fieldFormats }); expect(ac1.jsonDataEquals(ac2.aggs)).toBe(true); }); }); @@ -345,18 +318,8 @@ describe('AggConfig', () => { testsDifferent.forEach((test, index) => { it(`different aggregations (${index})`, () => { - const ac1 = new AggConfigs( - indexPattern, - test.config1, - { typesRegistry }, - aggConfigsDependencies - ); - const ac2 = new AggConfigs( - indexPattern, - test.config2, - { typesRegistry }, - aggConfigsDependencies - ); + const ac1 = new AggConfigs(indexPattern, test.config1, { typesRegistry, fieldFormats }); + const ac2 = new AggConfigs(indexPattern, test.config2, { typesRegistry, fieldFormats }); expect(ac1.jsonDataEquals(ac2.aggs)).toBe(false); }); }); @@ -364,7 +327,7 @@ describe('AggConfig', () => { describe('#toJSON', () => { it('includes the aggs id, params, type and schema', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); + const ac = new AggConfigs(indexPattern, [], { typesRegistry, fieldFormats }); const configStates = { enabled: true, type: 'date_histogram', @@ -395,18 +358,8 @@ describe('AggConfig', () => { params: {}, }, ]; - const ac1 = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); - const ac2 = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac1 = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); + const ac2 = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); // this relies on the assumption that js-engines consistently loop over properties in insertion order. // most likely the case, but strictly speaking not guaranteed by the JS and JSON specifications. @@ -418,7 +371,7 @@ describe('AggConfig', () => { let aggConfig: AggConfig; beforeEach(() => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); + const ac = new AggConfigs(indexPattern, [], { typesRegistry, fieldFormats }); aggConfig = ac.createAggConfig({ type: 'count' } as CreateAggConfigParams); }); @@ -447,7 +400,7 @@ describe('AggConfig', () => { describe('#fieldFormatter - custom getFormat handler', () => { it('returns formatter from getFormat handler', () => { - const ac = new AggConfigs(indexPattern, [], { typesRegistry }, aggConfigsDependencies); + const ac = new AggConfigs(indexPattern, [], { typesRegistry, fieldFormats }); const configStates = { enabled: true, type: 'count', @@ -488,12 +441,7 @@ describe('AggConfig', () => { }, }, }; - const ac = new AggConfigs( - indexPattern, - [configStates], - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, [configStates], { typesRegistry, fieldFormats }); aggConfig = ac.createAggConfig(configStates); }); diff --git a/src/plugins/data/public/search/aggs/agg_configs.test.ts b/src/plugins/data/public/search/aggs/agg_configs.test.ts index 72e8ee4af4778..653bf6a266df6 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.test.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.test.ts @@ -19,7 +19,7 @@ import { indexBy } from 'lodash'; import { AggConfig } from './agg_config'; -import { AggConfigs, AggConfigsDependencies } from './agg_configs'; +import { AggConfigs } from './agg_configs'; import { AggTypesRegistryStart } from './agg_types_registry'; import { mockDataServices, mockAggTypesRegistry } from './test_helpers'; import { Field as IndexPatternField, IndexPattern } from '../../index_patterns'; @@ -29,9 +29,7 @@ import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('AggConfigs', () => { let indexPattern: IndexPattern; let typesRegistry: AggTypesRegistryStart; - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); beforeEach(() => { mockDataServices(); @@ -49,12 +47,7 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); expect(ac.aggs).toHaveLength(1); }); @@ -79,7 +72,7 @@ describe('AggConfigs', () => { ]; const spy = jest.spyOn(AggConfig, 'ensureIds'); - new AggConfigs(indexPattern, configStates, { typesRegistry }, aggConfigsDependencies); + new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); expect(spy).toHaveBeenCalledTimes(1); expect(spy.mock.calls[0]).toEqual([configStates]); spy.mockRestore(); @@ -101,12 +94,7 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); expect(ac.aggs).toHaveLength(2); ac.createAggConfig( @@ -118,7 +106,7 @@ describe('AggConfigs', () => { params: {}, schema: 'split', }, - aggConfigsDependencies + { fieldFormats } ) ); expect(ac.aggs).toHaveLength(3); @@ -133,12 +121,7 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); expect(ac.aggs).toHaveLength(1); ac.createAggConfig({ @@ -159,12 +142,7 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); expect(ac.aggs).toHaveLength(1); ac.createAggConfig( @@ -192,12 +170,7 @@ describe('AggConfigs', () => { { type: 'percentiles', enabled: true, params: {}, schema: 'metric' }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const sorted = ac.getRequestAggs(); const aggs = indexBy(ac.aggs, agg => agg.type.name); @@ -220,12 +193,7 @@ describe('AggConfigs', () => { { type: 'count', enabled: true, params: {}, schema: 'metric' }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const sorted = ac.getResponseAggs(); const aggs = indexBy(ac.aggs, agg => agg.type.name); @@ -242,12 +210,7 @@ describe('AggConfigs', () => { { type: 'percentiles', enabled: true, params: { percents: [1, 2, 3] }, schema: 'metric' }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const sorted = ac.getResponseAggs(); const aggs = indexBy(ac.aggs, agg => agg.type.name); @@ -268,12 +231,7 @@ describe('AggConfigs', () => { it('uses the sorted aggs', () => { const configStates = [{ enabled: true, type: 'avg', params: { field: 'bytes' } }]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const spy = jest.spyOn(AggConfigs.prototype, 'getRequestAggs'); ac.toDsl(); expect(spy).toHaveBeenCalledTimes(1); @@ -287,14 +245,10 @@ describe('AggConfigs', () => { { enabled: true, type: 'count', params: {} }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { - typesRegistry, - }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { + typesRegistry, + fieldFormats, + }); const aggInfos = ac.aggs.map(aggConfig => { const football = {}; @@ -337,12 +291,7 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const dsl = ac.toDsl(); const histo = ac.byName('date_histogram')[0]; const count = ac.byName('count')[0]; @@ -367,14 +316,10 @@ describe('AggConfigs', () => { { enabled: true, type: 'max', schema: 'metric', params: { field: 'bytes' } }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { - typesRegistry, - }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { + typesRegistry, + fieldFormats, + }); const dsl = ac.toDsl(); const histo = ac.byName('date_histogram')[0]; const metrics = ac.bySchemaName('metrics'); @@ -399,12 +344,7 @@ describe('AggConfigs', () => { { enabled: true, type: 'max', schema: 'metric', params: { field: 'bytes' } }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const topLevelDsl = ac.toDsl(true); const buckets = ac.bySchemaName('buckets'); const metrics = ac.bySchemaName('metrics'); @@ -474,12 +414,7 @@ describe('AggConfigs', () => { }, ]; - const ac = new AggConfigs( - indexPattern, - configStates, - { typesRegistry }, - aggConfigsDependencies - ); + const ac = new AggConfigs(indexPattern, configStates, { typesRegistry, fieldFormats }); const topLevelDsl = ac.toDsl(true)['2']; expect(Object.keys(topLevelDsl.aggs)).toContain('1'); diff --git a/src/plugins/data/public/search/aggs/agg_configs.ts b/src/plugins/data/public/search/aggs/agg_configs.ts index 7c6cacd3bb7e9..16af9d850b98f 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.ts @@ -48,9 +48,6 @@ function parseParentAggs(dslLvlCursor: any, dsl: any) { export interface AggConfigsOptions { typesRegistry: AggTypesRegistryStart; -} - -export interface AggConfigsDependencies { fieldFormats: FieldFormatsStart; } @@ -81,8 +78,7 @@ export class AggConfigs { constructor( indexPattern: IndexPattern, configStates: CreateAggConfigParams[] = [], - opts: AggConfigsOptions, - { fieldFormats }: AggConfigsDependencies + opts: AggConfigsOptions ) { this.typesRegistry = opts.typesRegistry; @@ -90,7 +86,7 @@ export class AggConfigs { this.aggs = []; this.indexPattern = indexPattern; - this.fieldFormats = fieldFormats; + this.fieldFormats = opts.fieldFormats; configStates.forEach((params: any) => this.createAggConfig(params)); } @@ -119,16 +115,10 @@ export class AggConfigs { return agg.enabled; }; - const aggConfigs = new AggConfigs( - this.indexPattern, - this.aggs.filter(filterAggs), - { - typesRegistry: this.typesRegistry, - }, - { - fieldFormats: this.fieldFormats, - } - ); + const aggConfigs = new AggConfigs(this.indexPattern, this.aggs.filter(filterAggs), { + typesRegistry: this.typesRegistry, + fieldFormats: this.fieldFormats, + }); return aggConfigs; } diff --git a/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts b/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts index 59922bfd91ed3..44d99375bbd30 100644 --- a/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/_terms_other_bucket_helper.test.ts @@ -22,7 +22,7 @@ import { mergeOtherBucketAggResponse, updateMissingBucket, } from './_terms_other_bucket_helper'; -import { AggConfigs, CreateAggConfigParams, AggConfigsDependencies } from '../agg_configs'; +import { AggConfigs, CreateAggConfigParams } from '../agg_configs'; import { BUCKET_TYPES } from './bucket_agg_types'; import { IBucketAggConfig } from './bucket_agg_type'; import { mockAggTypesRegistry } from '../test_helpers'; @@ -220,11 +220,10 @@ const nestedOtherResponse = { describe('Terms Agg Other bucket helper', () => { const typesRegistry = mockAggTypesRegistry(); - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); + const getAggConfigs = (aggs: CreateAggConfigParams[] = []) => { - return new AggConfigs(indexPattern, [...aggs], { typesRegistry }, aggConfigsDependencies); + return new AggConfigs(indexPattern, [...aggs], { typesRegistry, fieldFormats }); }; describe('buildOtherBucketAgg', () => { diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts index 85016795d8f4f..7778fcb36bcd6 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/date_histogram.test.ts @@ -78,8 +78,10 @@ describe('AggConfig Filters', () => { params: { field: field.name, interval, customInterval: '5d' }, }, ], - { typesRegistry: mockAggTypesRegistry([getDateHistogramBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getDateHistogramBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); const bucketKey = 1422579600000; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts index e187340fecea6..4207fa92736f8 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/date_range.test.ts @@ -72,8 +72,10 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts index 26bf71651d000..bf05f7463db6c 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/filters.test.ts @@ -69,8 +69,10 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getFiltersBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getFiltersBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts index 845412035e28c..396d515f3b580 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/histogram.test.ts @@ -18,7 +18,7 @@ */ import { createFilterHistogram } from './histogram'; -import { AggConfigs, AggConfigsDependencies } from '../../agg_configs'; +import { AggConfigs } from '../../agg_configs'; import { mockAggTypesRegistry } from '../../test_helpers'; import { BUCKET_TYPES } from '../bucket_agg_types'; import { IBucketAggConfig } from '../bucket_agg_type'; @@ -28,9 +28,7 @@ import { fieldFormatsServiceMock } from '../../../../field_formats/mocks'; describe('AggConfig Filters', () => { describe('histogram', () => { const getConfig = (() => {}) as FieldFormatsGetConfigFn; - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const getAggConfigs = () => { const field = { name: 'bytes', @@ -59,8 +57,7 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry() }, - aggConfigsDependencies + { typesRegistry: mockAggTypesRegistry(), fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts index 0466536c057b1..d85576a0ccb14 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/ip_range.test.ts @@ -19,7 +19,7 @@ import { getIpRangeBucketAgg } from '../ip_range'; import { createFilterIpRange } from './ip_range'; -import { AggConfigs, CreateAggConfigParams, AggConfigsDependencies } from '../../agg_configs'; +import { AggConfigs, CreateAggConfigParams } from '../../agg_configs'; import { mockAggTypesRegistry } from '../../test_helpers'; import { IpFormat } from '../../../../../common'; import { BUCKET_TYPES } from '../bucket_agg_types'; @@ -29,13 +29,11 @@ import { notificationServiceMock } from '../../../../../../../core/public/mocks' describe('AggConfig Filters', () => { describe('IP range', () => { - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const typesRegistry = mockAggTypesRegistry([ getIpRangeBucketAgg({ getInternalStartServices: () => ({ - fieldFormats: aggConfigsDependencies.fieldFormats, + fieldFormats, notifications: notificationServiceMock.createStartContract(), }), }), @@ -55,7 +53,7 @@ describe('AggConfig Filters', () => { }, } as any; - return new AggConfigs(indexPattern, aggs, { typesRegistry }, aggConfigsDependencies); + return new AggConfigs(indexPattern, aggs, { typesRegistry, fieldFormats }); }; test('should return a range filter for ip_range agg', () => { diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts index 7605ff7d98d32..cadd8e9fe13ed 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/range.test.ts @@ -71,8 +71,10 @@ describe('AggConfig Filters', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts b/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts index 7871c5d339084..d9ff63613b640 100644 --- a/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/create_filter/terms.test.ts @@ -56,14 +56,10 @@ describe('AggConfig Filters', () => { indexPattern, }; - return new AggConfigs( - indexPattern, - aggs, - { - typesRegistry: mockAggTypesRegistry([getTermsBucketAgg(aggTypesDependencies)]), - }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } - ); + return new AggConfigs(indexPattern, aggs, { + typesRegistry: mockAggTypesRegistry([getTermsBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + }); }; test('should return a match_phrase filter for terms', () => { diff --git a/src/plugins/data/public/search/aggs/buckets/date_range.test.ts b/src/plugins/data/public/search/aggs/buckets/date_range.test.ts index 3ec48189d0795..f78f0cce732e7 100644 --- a/src/plugins/data/public/search/aggs/buckets/date_range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/date_range.test.ts @@ -74,8 +74,10 @@ describe('date_range params', () => { params, }, ], - { typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getDateRangeBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts b/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts index 226fdcc1fb85b..226faefe43482 100644 --- a/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/geo_hash.test.ts @@ -77,8 +77,10 @@ describe('Geohash Agg', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry() }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry(), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/histogram.test.ts b/src/plugins/data/public/search/aggs/buckets/histogram.test.ts index 7a84293499ae4..a55c32951232a 100644 --- a/src/plugins/data/public/search/aggs/buckets/histogram.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/histogram.test.ts @@ -70,8 +70,10 @@ describe('Histogram Agg', () => { params, }, ], - { typesRegistry: mockAggTypesRegistry([getHistogramBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getHistogramBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/range.test.ts b/src/plugins/data/public/search/aggs/buckets/range.test.ts index 70adb75328971..144d2b779e950 100644 --- a/src/plugins/data/public/search/aggs/buckets/range.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/range.test.ts @@ -95,8 +95,10 @@ describe('Range Agg', () => { }, }, ], - { typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]) }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry: mockAggTypesRegistry([getRangeBucketAgg(aggTypesDependencies)]), + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts b/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts index 64e3f1bfb1814..d0ace5a50c28d 100644 --- a/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/significant_terms.test.ts @@ -70,8 +70,8 @@ describe('Significant Terms Agg', () => { typesRegistry: mockAggTypesRegistry([ getSignificantTermsBucketAgg(aggTypesDependencies), ]), - }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }; diff --git a/src/plugins/data/public/search/aggs/buckets/terms.test.ts b/src/plugins/data/public/search/aggs/buckets/terms.test.ts index 5eaae663f80a2..0dc052bd1fdf6 100644 --- a/src/plugins/data/public/search/aggs/buckets/terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/terms.test.ts @@ -17,16 +17,14 @@ * under the License. */ -import { AggConfigs, AggConfigsDependencies } from '../agg_configs'; +import { AggConfigs } from '../agg_configs'; import { mockAggTypesRegistry } from '../test_helpers'; import { BUCKET_TYPES } from './bucket_agg_types'; import { fieldFormatsServiceMock } from '../../../field_formats/mocks'; describe('Terms Agg', () => { describe('order agg editor UI', () => { - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const getAggConfigs = (params: Record = {}) => { const indexPattern = { id: '1234', @@ -51,8 +49,7 @@ describe('Terms Agg', () => { type: BUCKET_TYPES.TERMS, }, ], - { typesRegistry: mockAggTypesRegistry() }, - aggConfigsDependencies + { typesRegistry: mockAggTypesRegistry(), fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/metrics/median.test.ts b/src/plugins/data/public/search/aggs/metrics/median.test.ts index c5787b9d4b833..de3ca646ead9e 100644 --- a/src/plugins/data/public/search/aggs/metrics/median.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/median.test.ts @@ -59,8 +59,10 @@ describe('AggTypeMetricMedianProvider class', () => { }, }, ], - { typesRegistry }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { + typesRegistry, + fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats, + } ); }); diff --git a/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts b/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts index 46005535610b2..3beb92a2fa000 100644 --- a/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/parent_pipeline.test.ts @@ -110,8 +110,7 @@ describe('parent pipeline aggs', function() { schema: 'metric', }, ], - { typesRegistry }, - { fieldFormats: getInternalStartServices().fieldFormats } + { typesRegistry, fieldFormats: getInternalStartServices().fieldFormats } ); // Grab the aggConfig off the vis (we don't actually use the vis for anything else) diff --git a/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts b/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts index dd292dbc2781e..1b94ecd602075 100644 --- a/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/percentile_ranks.test.ts @@ -70,8 +70,7 @@ describe('AggTypesMetricsPercentileRanksProvider class', function() { }, }, ], - { typesRegistry }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { typesRegistry, fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }); diff --git a/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts b/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts index 7a132b5c21fd2..76da2fe3eb62c 100644 --- a/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/percentiles.test.ts @@ -70,8 +70,7 @@ describe('AggTypesMetricsPercentilesProvider class', () => { }, }, ], - { typesRegistry }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { typesRegistry, fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }); diff --git a/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts b/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts index 282a2cc4a1527..a47aa2c677ade 100644 --- a/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/sibling_pipeline.test.ts @@ -111,8 +111,7 @@ describe('sibling pipeline aggs', () => { }, }, ], - { typesRegistry }, - { fieldFormats: getInternalStartServices().fieldFormats } + { typesRegistry, fieldFormats: getInternalStartServices().fieldFormats } ); // Grab the aggConfig off the vis (we don't actually use the vis for anything else) diff --git a/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts b/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts index c19965d40e83d..d2370e1fed02c 100644 --- a/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/std_deviation.test.ts @@ -64,8 +64,7 @@ describe('AggTypeMetricStandardDeviationProvider class', () => { }, }, ], - { typesRegistry }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { typesRegistry, fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); }; diff --git a/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts b/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts index f685c45d5001a..142b8e4c83301 100644 --- a/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts +++ b/src/plugins/data/public/search/aggs/metrics/top_hit.test.ts @@ -89,8 +89,7 @@ describe('Top hit metric', () => { params, }, ], - { typesRegistry }, - { fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } + { typesRegistry, fieldFormats: aggTypesDependencies.getInternalStartServices().fieldFormats } ); // Grab the aggConfig off the vis (we don't actually use the vis for anything else) diff --git a/src/plugins/data/public/search/aggs/mocks.ts b/src/plugins/data/public/search/aggs/mocks.ts index c78a486855dad..16544fd8f46b0 100644 --- a/src/plugins/data/public/search/aggs/mocks.ts +++ b/src/plugins/data/public/search/aggs/mocks.ts @@ -71,16 +71,10 @@ export const searchAggsSetupMock = (): SearchAggsSetup => ({ export const searchAggsStartMock = (): SearchAggsStart => ({ calculateAutoTimeExpression: getCalculateAutoTimeExpression(coreMock.createStart().uiSettings), createAggConfigs: jest.fn().mockImplementation((indexPattern, configStates = [], schemas) => { - return new AggConfigs( - indexPattern, - configStates, - { - typesRegistry: mockAggTypesRegistry(), - }, - { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - } - ); + return new AggConfigs(indexPattern, configStates, { + typesRegistry: mockAggTypesRegistry(), + fieldFormats: fieldFormatsServiceMock.createStartContract(), + }); }), types: mockAggTypesRegistry(), }); diff --git a/src/plugins/data/public/search/expressions/create_filter.test.ts b/src/plugins/data/public/search/expressions/create_filter.test.ts index 37a045b3fa60b..51b5e175761bd 100644 --- a/src/plugins/data/public/search/expressions/create_filter.test.ts +++ b/src/plugins/data/public/search/expressions/create_filter.test.ts @@ -18,7 +18,7 @@ */ import { createFilter } from './create_filter'; -import { AggConfigs, IAggConfig, AggConfigsDependencies } from '../aggs'; +import { AggConfigs, IAggConfig } from '../aggs'; import { TabbedTable } from '../tabify'; import { isRangeFilter, BytesFormat, FieldFormatsGetConfigFn } from '../../../common'; import { mockDataServices, mockAggTypesRegistry } from '../aggs/test_helpers'; @@ -27,9 +27,7 @@ import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('createFilter', () => { let table: TabbedTable; let aggConfig: IAggConfig; - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const typesRegistry = mockAggTypesRegistry(); @@ -62,8 +60,7 @@ describe('createFilter', () => { params, }, ], - { typesRegistry }, - aggConfigsDependencies + { typesRegistry, fieldFormats } ); }; diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index 716f557f84de3..a539736991adb 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -139,14 +139,10 @@ export class SearchService implements Plugin { aggs: { calculateAutoTimeExpression: getCalculateAutoTimeExpression(core.uiSettings), createAggConfigs: (indexPattern, configStates = [], schemas) => { - return new AggConfigs( - indexPattern, - configStates, - { - typesRegistry: aggTypesStart, - }, - { fieldFormats } - ); + return new AggConfigs(indexPattern, configStates, { + typesRegistry: aggTypesStart, + fieldFormats, + }); }, types: aggTypesStart, }, diff --git a/src/plugins/data/public/search/tabify/get_columns.test.ts b/src/plugins/data/public/search/tabify/get_columns.test.ts index c30f3183511d3..1072e9318b40e 100644 --- a/src/plugins/data/public/search/tabify/get_columns.test.ts +++ b/src/plugins/data/public/search/tabify/get_columns.test.ts @@ -19,7 +19,7 @@ import { tabifyGetColumns } from './get_columns'; import { TabbedAggColumn } from './types'; -import { AggConfigs, AggConfigsDependencies } from '../aggs'; +import { AggConfigs } from '../aggs'; import { mockAggTypesRegistry, mockDataServices } from '../aggs/test_helpers'; import { fieldFormatsServiceMock } from '../../field_formats/mocks'; @@ -29,9 +29,7 @@ describe('get columns', () => { }); const typesRegistry = mockAggTypesRegistry(); - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const createAggConfigs = (aggs: any[] = []) => { const field = { @@ -47,14 +45,10 @@ describe('get columns', () => { }, } as any; - return new AggConfigs( - indexPattern, - aggs, - { - typesRegistry, - }, - aggConfigsDependencies - ); + return new AggConfigs(indexPattern, aggs, { + typesRegistry, + fieldFormats, + }); }; test('should inject the metric after each bucket if the vis is hierarchical', () => { diff --git a/src/plugins/data/public/search/tabify/response_writer.test.ts b/src/plugins/data/public/search/tabify/response_writer.test.ts index 1766f4ab72de5..3334d858ce54e 100644 --- a/src/plugins/data/public/search/tabify/response_writer.test.ts +++ b/src/plugins/data/public/search/tabify/response_writer.test.ts @@ -18,7 +18,7 @@ */ import { TabbedAggResponseWriter } from './response_writer'; -import { AggConfigs, BUCKET_TYPES, AggConfigsDependencies } from '../aggs'; +import { AggConfigs, BUCKET_TYPES } from '../aggs'; import { mockDataServices, mockAggTypesRegistry } from '../aggs/test_helpers'; import { TabbedResponseWriterOptions } from './types'; import { fieldFormatsServiceMock } from '../../field_formats/mocks'; @@ -31,9 +31,7 @@ describe('TabbedAggResponseWriter class', () => { let responseWriter: TabbedAggResponseWriter; const typesRegistry = mockAggTypesRegistry(); - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const splitAggConfig = [ { @@ -76,14 +74,10 @@ describe('TabbedAggResponseWriter class', () => { } as any; return new TabbedAggResponseWriter( - new AggConfigs( - indexPattern, - aggs, - { - typesRegistry, - }, - aggConfigsDependencies - ), + new AggConfigs(indexPattern, aggs, { + typesRegistry, + fieldFormats, + }), { metricsAtAllLevels: false, partialRows: false, diff --git a/src/plugins/data/public/search/tabify/tabify.test.ts b/src/plugins/data/public/search/tabify/tabify.test.ts index 7c9002bd5aa67..63685cc87f5cf 100644 --- a/src/plugins/data/public/search/tabify/tabify.test.ts +++ b/src/plugins/data/public/search/tabify/tabify.test.ts @@ -19,16 +19,14 @@ import { tabifyAggResponse } from './tabify'; import { IndexPattern } from '../../index_patterns'; -import { AggConfigs, IAggConfig, IAggConfigs, AggConfigsDependencies } from '../aggs'; +import { AggConfigs, IAggConfig, IAggConfigs } from '../aggs'; import { mockAggTypesRegistry } from '../aggs/test_helpers'; import { metricOnly, threeTermBuckets } from 'fixtures/fake_hierarchical_data'; import { fieldFormatsServiceMock } from '../../field_formats/mocks'; describe('tabifyAggResponse Integration', () => { const typesRegistry = mockAggTypesRegistry(); - const aggConfigsDependencies: AggConfigsDependencies = { - fieldFormats: fieldFormatsServiceMock.createStartContract(), - }; + const fieldFormats = fieldFormatsServiceMock.createStartContract(); const createAggConfigs = (aggs: IAggConfig[] = []) => { const field = { @@ -44,14 +42,10 @@ describe('tabifyAggResponse Integration', () => { }, } as unknown) as IndexPattern; - return new AggConfigs( - indexPattern, - aggs, - { - typesRegistry, - }, - aggConfigsDependencies - ); + return new AggConfigs(indexPattern, aggs, { + typesRegistry, + fieldFormats, + }); }; const mockAggConfig = (agg: any): IAggConfig => (agg as unknown) as IAggConfig; From d2adc78bf51d1cc16a9ebb9dc2c4c41fedfddd5d Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Tue, 14 Apr 2020 15:12:50 +0300 Subject: [PATCH 7/7] Added readonly --- src/plugins/data/public/search/aggs/agg_config.ts | 2 +- src/plugins/data/public/search/aggs/agg_configs.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/data/public/search/aggs/agg_config.ts b/src/plugins/data/public/search/aggs/agg_config.ts index 9c9ca623e366b..6188849e0e6d4 100644 --- a/src/plugins/data/public/search/aggs/agg_config.ts +++ b/src/plugins/data/public/search/aggs/agg_config.ts @@ -97,7 +97,7 @@ export class AggConfig { private __type: IAggType; private __typeDecorations: any; private subAggs: AggConfig[] = []; - private fieldFormats: FieldFormatsStart; + private readonly fieldFormats: FieldFormatsStart; constructor( aggConfigs: IAggConfigs, diff --git a/src/plugins/data/public/search/aggs/agg_configs.ts b/src/plugins/data/public/search/aggs/agg_configs.ts index 16af9d850b98f..5ad09f824d3e4 100644 --- a/src/plugins/data/public/search/aggs/agg_configs.ts +++ b/src/plugins/data/public/search/aggs/agg_configs.ts @@ -70,7 +70,7 @@ export type IAggConfigs = AggConfigs; export class AggConfigs { public indexPattern: IndexPattern; public timeRange?: TimeRange; - private fieldFormats: FieldFormatsStart; + private readonly fieldFormats: FieldFormatsStart; private readonly typesRegistry: AggTypesRegistryStart; aggs: IAggConfig[];