Skip to content

Commit

Permalink
WIP [Regression] Histogram aggregation always shows an error message
Browse files Browse the repository at this point in the history
  • Loading branch information
alexwizp committed Apr 14, 2020
1 parent 1f732ad commit dabc0a9
Show file tree
Hide file tree
Showing 60 changed files with 747 additions and 594 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import expect from '@kbn/expect';
import { Control } from './control';
import { ControlParams } from '../editor_utils';
import { FilterManager as BaseFilterManager } from './filter_manager/filter_manager';
import { SearchSource } from '../legacy_imports';
import { SearchSourceType } from '../../../../../plugins/data/public';

function createControlParams(id: string, label: string): ControlParams {
return {
Expand Down Expand Up @@ -51,7 +51,7 @@ class ControlMock extends Control<BaseFilterManager> {

destroy() {}
}
const mockKbnApi: SearchSource = {} as SearchSource;
const mockKbnApi: SearchSourceType = {} as SearchSourceType;

describe('hasChanged', () => {
let control: ControlMock;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
import _ from 'lodash';
import { i18n } from '@kbn/i18n';

import { Filter } from '../../../../../plugins/data/public';
import { SearchSource as SearchSourceClass } from '../legacy_imports';
import { Filter, SearchSourceType } from '../../../../../plugins/data/public';
import { ControlParams, ControlParamsOptions, CONTROL_TYPES } from '../editor_utils';
import { RangeFilterManager } from './filter_manager/range_filter_manager';
import { PhraseFilterManager } from './filter_manager/phrase_filter_manager';
Expand Down Expand Up @@ -62,7 +61,7 @@ export abstract class Control<FilterManager extends BaseFilterManager> {
public controlParams: ControlParams,
public filterManager: FilterManager,
public useTimeFilter: boolean,
public SearchSource: SearchSourceClass
public SearchSource: SearchSourceType
) {
this.id = controlParams.id;
this.controlParams = controlParams;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,16 @@
* under the License.
*/

import { PhraseFilter, IndexPattern, TimefilterContract } from '../../../../../plugins/data/public';
import { SearchSource as SearchSourceClass, SearchSourceFields } from '../legacy_imports';
import {
SearchSourceFields,
SearchSourceType,
PhraseFilter,
IndexPattern,
TimefilterContract,
} from '../../../../../plugins/data/public';

export function createSearchSource(
SearchSource: SearchSourceClass,
SearchSource: SearchSourceType,
initialState: SearchSourceFields | null,
indexPattern: IndexPattern,
aggs: any,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,17 @@

import _ from 'lodash';
import { i18n } from '@kbn/i18n';

import { SearchSource as SearchSourceClass, SearchSourceFields } from '../legacy_imports';
import { Control, noValuesDisableMsg, noIndexPatternMsg } from './control';
import { PhraseFilterManager } from './filter_manager/phrase_filter_manager';
import { createSearchSource } from './create_search_source';
import { ControlParams } from '../editor_utils';
import { InputControlVisDependencies } from '../plugin';
import { IFieldType, TimefilterContract } from '../../../../../plugins/data/public';
import {
IFieldType,
TimefilterContract,
SearchSourceType,
SearchSourceFields,
} from '../../../../../plugins/data/public';

function getEscapedQuery(query = '') {
// https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#_standard_operators
Expand Down Expand Up @@ -86,7 +89,7 @@ export class ListControl extends Control<PhraseFilterManager> {
controlParams: ControlParams,
filterManager: PhraseFilterManager,
useTimeFilter: boolean,
SearchSource: SearchSourceClass,
SearchSource: SearchSourceType,
deps: InputControlVisDependencies
) {
super(controlParams, filterManager, useTimeFilter, SearchSource);
Expand Down Expand Up @@ -202,7 +205,7 @@ export class ListControl extends Control<PhraseFilterManager> {
export async function listControlFactory(
controlParams: ControlParams,
useTimeFilter: boolean,
SearchSource: SearchSourceClass,
SearchSource: SearchSourceType,
deps: InputControlVisDependencies
) {
const [, { data: dataPluginStart }] = await deps.core.getStartServices();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@
import _ from 'lodash';
import { i18n } from '@kbn/i18n';

import { SearchSource as SearchSourceClass } from '../legacy_imports';
import { Control, noValuesDisableMsg, noIndexPatternMsg } from './control';
import { RangeFilterManager } from './filter_manager/range_filter_manager';
import { createSearchSource } from './create_search_source';
import { ControlParams } from '../editor_utils';
import { InputControlVisDependencies } from '../plugin';
import { IFieldType, TimefilterContract } from '../.../../../../../../plugins/data/public';
import {
IFieldType,
TimefilterContract,
SearchSourceType,
} from '../.../../../../../../plugins/data/public';

const minMaxAgg = (field?: IFieldType) => {
const aggBody: any = {};
Expand Down Expand Up @@ -61,7 +64,7 @@ export class RangeControl extends Control<RangeFilterManager> {
controlParams: ControlParams,
filterManager: RangeFilterManager,
useTimeFilter: boolean,
SearchSource: SearchSourceClass,
SearchSource: SearchSourceType,
deps: InputControlVisDependencies
) {
super(controlParams, filterManager, useTimeFilter, SearchSource);
Expand Down Expand Up @@ -129,7 +132,7 @@ export class RangeControl extends Control<RangeFilterManager> {
export async function rangeControlFactory(
controlParams: ControlParams,
useTimeFilter: boolean,
SearchSource: SearchSourceClass,
SearchSource: SearchSourceType,
deps: InputControlVisDependencies
): Promise<RangeControl> {
const [, { data: dataPluginStart }] = await deps.core.getStartServices();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import { createInputControlVisFn } from './input_control_fn';
// eslint-disable-next-line
import { functionWrapper } from '../../../../plugins/expressions/common/expression_functions/specs/tests/utils';

jest.mock('./legacy_imports.ts');

describe('interpreter/functions#input_control_vis', () => {
const fn = functionWrapper(createInputControlVisFn());
const visConfig = {
Expand All @@ -48,8 +46,9 @@ describe('interpreter/functions#input_control_vis', () => {
pinFilters: false,
};

it('returns an object with the correct structure', async () => {
test('returns an object with the correct structure', async () => {
const actual = await fn(null, { visConfig: JSON.stringify(visConfig) });

expect(actual).toMatchSnapshot();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
* under the License.
*/

import { SearchSource } from '../legacy_imports';
import { SearchSourceType } from '../../../../../plugins/data/public';

export const getSearchSourceMock = (esSearchResponse?: any): SearchSource =>
jest.fn().mockImplementation(() => ({
export const getSearchSourceMock = (esSearchResponse?: any) =>
(jest.fn().mockImplementation(() => ({
setParent: jest.fn(),
setField: jest.fn(),
fetch: jest.fn().mockResolvedValue(
Expand All @@ -43,4 +43,4 @@ export const getSearchSourceMock = (esSearchResponse?: any): SearchSource =>
},
}
),
}));
})) as unknown) as SearchSourceType;
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ import React from 'react';
import { render, unmountComponentAtNode } from 'react-dom';

import { I18nStart } from 'kibana/public';
import { SearchSource } from './legacy_imports';

import { InputControlVis } from './components/vis/input_control_vis';
import { getControlFactory } from './control/control_factory';
import { getLineageMap } from './lineage';
Expand Down Expand Up @@ -100,8 +98,11 @@ export const createInputControlVisController = (deps: InputControlVisDependencie
}
);

const [, { data }] = await deps.core.getStartServices();
const SearchSource = data.search.SearchSource;
const controlFactoryPromises = controlParamsList.map(controlParams => {
const factory = getControlFactory(controlParams);

return factory(controlParams, this.visParams?.useTimeFilter, SearchSource, deps);
});
const controls = await Promise.all<RangeControl | ListControl>(controlFactoryPromises);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import {
TimefilterContract,
IndexPatternsContract,
DataPublicPluginStart,
SearchSourceType,
} from 'src/plugins/data/public';

import { DiscoverStartPlugins } from './plugin';
Expand Down Expand Up @@ -64,6 +65,7 @@ export interface DiscoverServices {
getSavedSearchUrlById: (id: string) => Promise<string>;
uiSettings: IUiSettingsClient;
visualizations: VisualizationsStart;
SearchSource: SearchSourceType;
}
export async function buildServices(
core: CoreStart,
Expand All @@ -77,6 +79,7 @@ export async function buildServices(
overlays: core.overlays,
};
const savedObjectService = createSavedSearchesLoader(services);

return {
addBasePath: core.http.basePath.prepend,
capabilities: core.application.capabilities,
Expand All @@ -99,5 +102,6 @@ export async function buildServices(
toastNotifications: core.notifications.toasts,
uiSettings: core.uiSettings,
visualizations: plugins.visualizations,
SearchSource: plugins.data.search.SearchSource,
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ export {
IndexPattern,
indexPatterns,
IFieldType,
SearchSource,
ISearchSource,
EsQuerySortValue,
SortDirection,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ import {
Filter,
IndexPatternsContract,
IndexPattern,
SearchSource,
} from '../../../../../../../../../plugins/data/public';
import { getServices } from '../../../../kibana_services';

export type SurrDocType = 'successors' | 'predecessors';
export interface EsHitRecord {
Expand Down Expand Up @@ -115,6 +115,8 @@ function fetchContextProvider(indexPatterns: IndexPatternsContract) {
}

async function createSearchSource(indexPattern: IndexPattern, filters: Filter[]) {
const { SearchSource } = getServices();

return new SearchSource()
.setParent(undefined)
.setField('index', indexPattern)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import _ from 'lodash';
import { i18n } from '@kbn/i18n';
import React from 'react';
import { getServices, SearchSource } from '../../../../kibana_services';
import { getServices } from '../../../../kibana_services';

import { fetchAnchorProvider } from '../api/anchor';
import { fetchContextProvider } from '../api/context';
Expand All @@ -29,7 +29,7 @@ import { FAILURE_REASONS, LOADING_STATUS } from './constants';
import { MarkdownSimple } from '../../../../../../../../../plugins/kibana_react/public';

export function QueryActionsProvider(Promise) {
const { filterManager, indexPatterns } = getServices();
const { filterManager, indexPatterns, SearchSource } = getServices();
const fetchAnchor = fetchAnchorProvider(indexPatterns, new SearchSource());
const { fetchSurroundingDocs } = fetchContextProvider(indexPatterns);
const { setPredecessorCount, setQueryParameters, setSuccessorCount } = getQueryParameterActions(
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/data/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,8 @@ export {
SearchError,
SearchStrategyProvider,
ISearchSource,
SearchSource,
SearchSourceType,
// TODO: not sure that it should be exported
createSearchSource,
SearchSourceFields,
EsQuerySortValue,
Expand Down
26 changes: 17 additions & 9 deletions src/plugins/data/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ import {
setUiSettings,
getFieldFormats,
getNotifications,
getUiSettings,
getSearchService,
getInjectedMetadata,
} from './services';
import { createSearchBar } from './ui/search_bar/create_search_bar';
import { esaggs } from './search/expressions';
Expand Down Expand Up @@ -95,19 +98,20 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
this.packageInfo = initializerContext.env.packageInfo;
}

getInternalStartServices: GetInternalStartServicesFn = () => ({
fieldFormats: getFieldFormats(),
notifications: getNotifications(),
uiSettings: getUiSettings(),
injectedMetadata: getInjectedMetadata(),
searchService: getSearchService(),
});

public setup(
core: CoreSetup,
{ expressions, uiActions }: DataSetupDependencies
): DataPublicPluginSetup {
setInjectedMetadata(core.injectedMetadata);

expressions.registerFunction(esaggs);

const getInternalStartServices: GetInternalStartServicesFn = () => ({
fieldFormats: getFieldFormats(),
notifications: getNotifications(),
});

const queryService = this.queryService.setup({
uiSettings: core.uiSettings,
storage: this.storage,
Expand All @@ -130,7 +134,7 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
return {
autocomplete: this.autocomplete.setup(core),
search: this.searchService.setup(core, {
getInternalStartServices,
getInternalStartServices: this.getInternalStartServices,
packageInfo: this.packageInfo,
query: queryService,
}),
Expand All @@ -145,6 +149,7 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
setNotifications(notifications);
setOverlays(overlays);
setUiSettings(uiSettings);
setInjectedMetadata(core.injectedMetadata);

const fieldFormats = this.fieldFormatsService.start();
setFieldFormats(fieldFormats);
Expand All @@ -155,7 +160,10 @@ export class DataPublicPlugin implements Plugin<DataPublicPluginSetup, DataPubli
const query = this.queryService.start(savedObjects);
setQueryService(query);

const search = this.searchService.start(core, indexPatterns);
const search = this.searchService.start(core, {
indexPatterns,
getInternalStartServices: this.getInternalStartServices,
});
setSearchService(search);

uiActions.attachAction(APPLY_FILTER_TRIGGER, uiActions.getAction(ACTION_GLOBAL_APPLY_FILTER));
Expand Down
10 changes: 6 additions & 4 deletions src/plugins/data/public/search/aggs/agg_params.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,15 @@ import { AggParamType } from '../aggs/param_types/agg';
import { fieldFormatsServiceMock } from '../../field_formats/mocks';
import { notificationServiceMock } from '../../../../../../src/core/public/mocks';
import { AggTypeDependencies } from './agg_type';
import { InternalStartServices } from '../../types';

describe('AggParams class', () => {
const aggTypesDependencies: AggTypeDependencies = {
getInternalStartServices: () => ({
fieldFormats: fieldFormatsServiceMock.createStartContract(),
notifications: notificationServiceMock.createStartContract(),
}),
getInternalStartServices: () =>
(({
fieldFormats: fieldFormatsServiceMock.createStartContract(),
notifications: notificationServiceMock.createStartContract(),
} as unknown) as InternalStartServices),
};

describe('constructor args', () => {
Expand Down
16 changes: 9 additions & 7 deletions src/plugins/data/public/search/aggs/agg_type.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,21 @@ import { AggType, AggTypeConfig, AggTypeDependencies } from './agg_type';
import { IAggConfig } from './agg_config';
import { fieldFormatsServiceMock } from '../../field_formats/mocks';
import { notificationServiceMock } from '../../../../../../src/core/public/mocks';
import { InternalStartServices } from '../../types';

describe('AggType Class', () => {
let dependencies: AggTypeDependencies;

beforeEach(() => {
dependencies = {
getInternalStartServices: () => ({
fieldFormats: {
...fieldFormatsServiceMock.createStartContract(),
getDefaultInstance: jest.fn(() => 'default') as any,
},
notifications: notificationServiceMock.createStartContract(),
}),
getInternalStartServices: () =>
(({
fieldFormats: {
...fieldFormatsServiceMock.createStartContract(),
getDefaultInstance: jest.fn(() => 'default') as any,
},
notifications: notificationServiceMock.createStartContract(),
} as unknown) as InternalStartServices),
};
});

Expand Down
Loading

0 comments on commit dabc0a9

Please sign in to comment.