diff --git a/x-pack/plugins/lens/public/app_plugin/app.test.tsx b/x-pack/plugins/lens/public/app_plugin/app.test.tsx index c23bd463cb64d..8420365ee0666 100644 --- a/x-pack/plugins/lens/public/app_plugin/app.test.tsx +++ b/x-pack/plugins/lens/public/app_plugin/app.test.tsx @@ -24,9 +24,9 @@ import { esFilters, FilterManager, IndexPattern, - IndexPatternField, Query, } from '../../../../../src/plugins/data/public'; +import type { FieldSpec } from '../../../../../src/plugins/data/common'; import { TopNavMenuData } from '../../../../../src/plugins/navigation/public'; import { LensByValueInput } from '../embeddable/embeddable'; import { SavedObjectReference } from '../../../../../src/core/types'; @@ -155,7 +155,7 @@ describe('Lens App', () => { it('updates global filters with store state', async () => { const services = makeDefaultServices(sessionIdSubject); const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const pinnedField = ({ name: 'pinnedField' } as unknown) as IndexPatternField; + const pinnedField = ({ name: 'pinnedField' } as unknown) as FieldSpec; const pinnedFilter = esFilters.buildExistsFilter(pinnedField, indexPattern); services.data.query.filterManager.getFilters = jest.fn().mockImplementation(() => { return []; @@ -653,8 +653,8 @@ describe('Lens App', () => { it('saves app filters and does not save pinned filters', async () => { const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const field = ({ name: 'myfield' } as unknown) as IndexPatternField; - const pinnedField = ({ name: 'pinnedField' } as unknown) as IndexPatternField; + const field = ({ name: 'myfield' } as unknown) as FieldSpec; + const pinnedField = ({ name: 'pinnedField' } as unknown) as FieldSpec; const unpinned = esFilters.buildExistsFilter(field, indexPattern); const pinned = esFilters.buildExistsFilter(pinnedField, indexPattern); await act(async () => { @@ -835,7 +835,7 @@ describe('Lens App', () => { it('updates the filters when the user changes them', async () => { const { instance, services, lensStore } = await mountWith({}); const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const field = ({ name: 'myfield' } as unknown) as IndexPatternField; + const field = ({ name: 'myfield' } as unknown) as FieldSpec; expect(lensStore.getState()).toEqual({ lens: expect.objectContaining({ filters: [], @@ -890,7 +890,7 @@ describe('Lens App', () => { }), }); const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const field = ({ name: 'myfield' } as unknown) as IndexPatternField; + const field = ({ name: 'myfield' } as unknown) as FieldSpec; act(() => services.data.query.filterManager.setFilters([ esFilters.buildExistsFilter(field, indexPattern), @@ -1025,8 +1025,8 @@ describe('Lens App', () => { }) ); const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const field = ({ name: 'myfield' } as unknown) as IndexPatternField; - const pinnedField = ({ name: 'pinnedField' } as unknown) as IndexPatternField; + const field = ({ name: 'myfield' } as unknown) as FieldSpec; + const pinnedField = ({ name: 'pinnedField' } as unknown) as FieldSpec; const unpinned = esFilters.buildExistsFilter(field, indexPattern); const pinned = esFilters.buildExistsFilter(pinnedField, indexPattern); FilterManager.setFiltersStore([pinned], esFilters.FilterStateStore.GLOBAL_STATE); @@ -1082,8 +1082,8 @@ describe('Lens App', () => { }) ); const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const field = ({ name: 'myfield' } as unknown) as IndexPatternField; - const pinnedField = ({ name: 'pinnedField' } as unknown) as IndexPatternField; + const field = ({ name: 'myfield' } as unknown) as FieldSpec; + const pinnedField = ({ name: 'pinnedField' } as unknown) as FieldSpec; const unpinned = esFilters.buildExistsFilter(field, indexPattern); const pinned = esFilters.buildExistsFilter(pinnedField, indexPattern); FilterManager.setFiltersStore([pinned], esFilters.FilterStateStore.GLOBAL_STATE); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx index 61e24e2d66347..2f1eeea0639f3 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.test.tsx @@ -28,11 +28,8 @@ import { ReactWrapper } from 'enzyme'; import { DragDrop, ChildDragDropProvider } from '../../../drag_drop'; import { fromExpression } from '@kbn/interpreter/common'; import { coreMock } from 'src/core/public/mocks'; -import { - esFilters, - IndexPattern, - IndexPatternField, -} from '../../../../../../../src/plugins/data/public'; +import { esFilters, IndexPattern } from '../../../../../../../src/plugins/data/public'; +import type { FieldSpec } from '../../../../../../../src/plugins/data/common'; import { UiActionsStart } from '../../../../../../../src/plugins/ui_actions/public'; import { uiActionsPluginMock } from '../../../../../../../src/plugins/ui_actions/public/mocks'; import { TriggerContract } from '../../../../../../../src/plugins/ui_actions/public/triggers'; @@ -420,7 +417,7 @@ describe('workspace_panel', () => { expect(expressionRendererMock).toHaveBeenCalledTimes(1); const indexPattern = ({ id: 'index1' } as unknown) as IndexPattern; - const field = ({ name: 'myfield' } as unknown) as IndexPatternField; + const field = ({ name: 'myfield' } as unknown) as FieldSpec; await act(async () => { instance.setProps({ diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx index 59aebc517bf22..a6828bf9d5873 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx @@ -664,7 +664,14 @@ describe('IndexPattern Data Panel', () => { ...props.indexPatterns['1'], fields: [ ...props.indexPatterns['1'].fields, - { name: '_id', displayName: '_id', meta: true, type: 'string' }, + { + name: '_id', + displayName: '_id', + meta: true, + type: 'string', + searchable: true, + aggregatable: true, + }, ], }, }} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx index 118405baebc8b..c4a88617c24b7 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx @@ -81,6 +81,7 @@ describe('percentile', () => { displayName: 'bytes', type: 'number', esTypes: ['long'], + searchable: true, aggregatable: true, }) ).toEqual({ @@ -97,6 +98,7 @@ describe('percentile', () => { displayName: 'response_time', type: 'histogram', esTypes: ['histogram'], + searchable: true, aggregatable: true, }) ).toEqual({ @@ -113,6 +115,7 @@ describe('percentile', () => { displayName: 'origin', type: 'string', esTypes: ['keyword'], + searchable: true, aggregatable: true, }) ).toBeUndefined(); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx index 92565d1590ea3..aef086a6ee288 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx @@ -96,9 +96,23 @@ const defaultOptions = { id: '1', title: 'my_index_pattern', hasRestrictions: false, - fields: [{ name: sourceField, type: 'number', displayName: sourceField }], + fields: [ + { + name: sourceField, + type: 'number', + displayName: sourceField, + searchable: true, + aggregatable: true, + }, + ], getFieldByName: getFieldByNameFactory([ - { name: sourceField, type: 'number', displayName: sourceField }, + { + name: sourceField, + type: 'number', + displayName: sourceField, + searchable: true, + aggregatable: true, + }, ]), }, operationDefinitionMap: {}, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx index 26ae37a074288..9d5959c807490 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx @@ -21,7 +21,7 @@ import { createMockedIndexPattern } from '../../../mocks'; import { ValuesInput } from './values_input'; import type { TermsIndexPatternColumn } from '.'; import { termsOperation } from '../index'; -import type { IndexPattern, IndexPatternField, IndexPatternLayer } from '../../../types'; +import { IndexPattern, IndexPatternLayer } from '../../../types'; import { FrameDatasourceAPI } from '../../../../types'; const uiSettingsMock = {} as IUiSettingsClient; @@ -177,7 +177,7 @@ describe('terms', () => { describe('getPossibleOperationForField', () => { it('should return operation with the right type', () => { expect( - termsOperation.getPossibleOperationForField(({ + termsOperation.getPossibleOperationForField({ aggregatable: true, searchable: true, name: 'test', @@ -188,7 +188,7 @@ describe('terms', () => { agg: 'terms', }, }, - } as unknown) as IndexPatternField) + }) ).toEqual({ dataType: 'string', isBucketed: true, @@ -196,7 +196,7 @@ describe('terms', () => { }); expect( - termsOperation.getPossibleOperationForField(({ + termsOperation.getPossibleOperationForField({ aggregatable: true, searchable: true, name: 'test', @@ -207,7 +207,7 @@ describe('terms', () => { agg: 'terms', }, }, - } as unknown) as IndexPatternField) + }) ).toEqual({ dataType: 'number', isBucketed: true, @@ -221,7 +221,7 @@ describe('terms', () => { name: 'test', displayName: 'test', type: 'boolean', - } as IndexPatternField) + }) ).toEqual({ dataType: 'boolean', isBucketed: true, @@ -235,7 +235,7 @@ describe('terms', () => { name: 'test', displayName: 'test', type: 'ip', - } as IndexPatternField) + }) ).toEqual({ dataType: 'ip', isBucketed: true, @@ -251,7 +251,7 @@ describe('terms', () => { name: 'test', displayName: 'test', type: 'string', - } as IndexPatternField) + }) ).toEqual(undefined); expect( @@ -262,7 +262,7 @@ describe('terms', () => { name: 'test', displayName: 'test', type: 'string', - } as IndexPatternField) + }) ).toEqual(undefined); }); }); @@ -277,7 +277,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, layer: { columns: {}, columnOrder: [], indexPatternId: '' }, }); expect(termsColumn.dataType).toEqual('boolean'); @@ -292,7 +292,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, layer: { columns: {}, columnOrder: [], indexPatternId: '' }, }); expect(termsColumn.params.otherBucket).toEqual(true); @@ -307,7 +307,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, layer: { columns: {}, columnOrder: [], indexPatternId: '' }, }); expect(termsColumn.params.otherBucket).toEqual(false); @@ -335,7 +335,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, }); expect(termsColumn.params).toEqual( expect.objectContaining({ @@ -368,7 +368,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, }); expect(termsColumn.params).toEqual( expect.objectContaining({ orderBy: { type: 'alphabetical', fallback: true } }) @@ -385,7 +385,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, }); expect(termsColumn.params).toEqual(expect.objectContaining({ size: 3 })); }); @@ -400,7 +400,7 @@ describe('terms', () => { type: 'boolean', name: 'test', displayName: 'test', - } as IndexPatternField, + }, }); expect(termsColumn.params).toEqual(expect.objectContaining({ size: 5 })); }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/types.ts b/x-pack/plugins/lens/public/indexpattern_datasource/types.ts index 2233c3117623a..72acc114ca4b2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/types.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/types.ts @@ -6,10 +6,8 @@ */ import type { IndexPatternColumn, IncompleteColumn } from './operations'; -import type { - IndexPatternField as BaseIndexPatternField, - IndexPatternAggRestrictions, -} from '../../../../../src/plugins/data/public'; +import type { IndexPatternAggRestrictions } from '../../../../../src/plugins/data/public'; +import type { FieldSpec } from '../../../../../src/plugins/data/common'; import type { DragDropIdentifier } from '../drag_drop/providers'; export { @@ -59,7 +57,7 @@ export interface IndexPattern { hasRestrictions: boolean; } -export type IndexPatternField = BaseIndexPatternField & { +export type IndexPatternField = FieldSpec & { displayName: string; aggregationRestrictions?: Partial; meta?: boolean;