mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Create @kbn/discover-utils package (#162004)
## Summary Creates a shared package for Discover utils/services/hooks, `@kbn/discover-utils`. Moves a couple of utils there (`buildDataTableRecord`/`getDocId`). This will be the future home for many services/utils that are shared between the Discover app and its packaged components (like unified field list, unified histogram, etc.) ### Checklist - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
384e2eda83
commit
2a689fa787
116 changed files with 760 additions and 594 deletions
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
|
@ -330,6 +330,7 @@ examples/discover_customization_examples @elastic/kibana-data-discovery
|
|||
x-pack/plugins/discover_enhanced @elastic/kibana-data-discovery
|
||||
x-pack/plugins/discover_log_explorer @elastic/infra-monitoring-ui
|
||||
src/plugins/discover @elastic/kibana-data-discovery
|
||||
packages/kbn-discover-utils @elastic/kibana-data-discovery
|
||||
packages/kbn-doc-links @elastic/docs
|
||||
packages/kbn-docs-utils @elastic/kibana-operations
|
||||
packages/kbn-dom-drag-drop @elastic/kibana-visualizations @elastic/kibana-data-discovery
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
"defaultNavigation": "packages/default-nav",
|
||||
"devTools": "src/plugins/dev_tools",
|
||||
"discover": "src/plugins/discover",
|
||||
"discover-utils": "packages/kbn-discover-utils",
|
||||
"savedSearch": "src/plugins/saved_search",
|
||||
"embeddableApi": "src/plugins/embeddable",
|
||||
"embeddableExamples": "examples/embeddable_examples",
|
||||
|
|
|
@ -372,6 +372,7 @@
|
|||
"@kbn/discover-enhanced-plugin": "link:x-pack/plugins/discover_enhanced",
|
||||
"@kbn/discover-log-explorer-plugin": "link:x-pack/plugins/discover_log_explorer",
|
||||
"@kbn/discover-plugin": "link:src/plugins/discover",
|
||||
"@kbn/discover-utils": "link:packages/kbn-discover-utils",
|
||||
"@kbn/doc-links": "link:packages/kbn-doc-links",
|
||||
"@kbn/dom-drag-drop": "link:packages/kbn-dom-drag-drop",
|
||||
"@kbn/ebt-tools": "link:packages/kbn-ebt-tools",
|
||||
|
|
4
packages/kbn-discover-utils/README.md
Normal file
4
packages/kbn-discover-utils/README.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
# @kbn/discover-utils
|
||||
|
||||
This is the package contains extracting parts of Discover for the usage in other
|
||||
unified components. This are mainly shared types, utils and mocks.
|
9
packages/kbn-discover-utils/index.ts
Normal file
9
packages/kbn-discover-utils/index.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
export { getDocId, buildDataTableRecord, buildDataTableRecordList } from './src';
|
13
packages/kbn-discover-utils/jest.config.js
Normal file
13
packages/kbn-discover-utils/jest.config.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
preset: '@kbn/test',
|
||||
rootDir: '../..',
|
||||
roots: ['<rootDir>/packages/kbn-discover-utils'],
|
||||
};
|
5
packages/kbn-discover-utils/kibana.jsonc
Normal file
5
packages/kbn-discover-utils/kibana.jsonc
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"type": "shared-common",
|
||||
"id": "@kbn/discover-utils",
|
||||
"owner": "@elastic/kibana-data-discovery"
|
||||
}
|
6
packages/kbn-discover-utils/package.json
Normal file
6
packages/kbn-discover-utils/package.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"name": "@kbn/discover-utils",
|
||||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"license": "SSPL-1.0 OR Elastic License 2.0"
|
||||
}
|
|
@ -6,7 +6,7 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
export const esHits = [
|
||||
export const esHitsMock = [
|
||||
{
|
||||
_index: 'i',
|
||||
_id: '1',
|
10
packages/kbn-discover-utils/src/__mocks__/index.ts
Normal file
10
packages/kbn-discover-utils/src/__mocks__/index.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
export * from './data_view';
|
||||
export * from './es_hits';
|
9
packages/kbn-discover-utils/src/index.ts
Normal file
9
packages/kbn-discover-utils/src/index.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
export * from './utils';
|
35
packages/kbn-discover-utils/src/types.ts
Normal file
35
packages/kbn-discover-utils/src/types.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import type { SearchHit } from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
|
||||
|
||||
export interface EsHitRecord extends Omit<SearchHit, '_source'> {
|
||||
_source?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the record/row of data provided to our Data Table
|
||||
*/
|
||||
export interface DataTableRecord {
|
||||
/**
|
||||
* A unique id generated by index, id and routing of a record
|
||||
*/
|
||||
id: string;
|
||||
/**
|
||||
* The document returned by Elasticsearch for search queries
|
||||
*/
|
||||
raw: EsHitRecord;
|
||||
/**
|
||||
* A flattened version of the ES doc or data provided by SQL, aggregations ...
|
||||
*/
|
||||
flattened: Record<string, unknown>;
|
||||
/**
|
||||
* Determines that the given doc is the anchor doc when rendering view surrounding docs
|
||||
*/
|
||||
isAnchor?: boolean;
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { buildDataTableRecord, buildDataTableRecordList } from './build_data_record';
|
||||
import { dataViewMock, esHitsMock } from '../__mocks__';
|
||||
|
||||
describe('Data table record utils', () => {
|
||||
describe('buildDataTableRecord', () => {
|
||||
test('should return a DataTableRecord', () => {
|
||||
const result = buildDataTableRecord(esHitsMock[0], dataViewMock, false);
|
||||
expect(result).toHaveProperty('id', 'i::1::');
|
||||
expect(result).toHaveProperty('raw', esHitsMock[0]);
|
||||
expect(result).toHaveProperty('flattened');
|
||||
expect(result).toHaveProperty('isAnchor', false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('buildDataTableRecordList', () => {
|
||||
test('should return a list of DataTableRecord', () => {
|
||||
const result = buildDataTableRecordList(esHitsMock, dataViewMock);
|
||||
result.forEach((doc) => {
|
||||
expect(doc).toHaveProperty('id');
|
||||
expect(doc).toHaveProperty('raw');
|
||||
expect(doc).toHaveProperty('flattened');
|
||||
expect(doc).toHaveProperty('isAnchor');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -6,10 +6,10 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { DataView } from '@kbn/data-views-plugin/common';
|
||||
import { flattenHit } from '@kbn/data-plugin/common';
|
||||
import { getDocId } from './get_doc_id';
|
||||
import type { DataView } from '@kbn/data-views-plugin/common';
|
||||
import { flattenHit } from '@kbn/data-service';
|
||||
import type { DataTableRecord, EsHitRecord } from '../types';
|
||||
import { getDocId } from './get_doc_id';
|
||||
|
||||
/**
|
||||
* Build a record for data table, explorer + classic one
|
17
packages/kbn-discover-utils/src/utils/get_doc_id.test.ts
Normal file
17
packages/kbn-discover-utils/src/utils/get_doc_id.test.ts
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { esHitsMock } from '../__mocks__';
|
||||
import { getDocId } from './get_doc_id';
|
||||
|
||||
describe('getDocId', () => {
|
||||
test('should return unique ID', () => {
|
||||
const result = getDocId(esHitsMock[0]);
|
||||
expect(result).toMatchInlineSnapshot(`"i::1::"`);
|
||||
});
|
||||
});
|
10
packages/kbn-discover-utils/src/utils/index.ts
Normal file
10
packages/kbn-discover-utils/src/utils/index.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
export * from './build_data_record';
|
||||
export * from './get_doc_id';
|
22
packages/kbn-discover-utils/tsconfig.json
Normal file
22
packages/kbn-discover-utils/tsconfig.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "target/types",
|
||||
"types": [
|
||||
"jest",
|
||||
"node",
|
||||
"react"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"**/*.ts",
|
||||
"**/*.tsx",
|
||||
],
|
||||
"exclude": [
|
||||
"target/**/*"
|
||||
],
|
||||
"kbn_references": [
|
||||
"@kbn/data-views-plugin",
|
||||
"@kbn/data-service",
|
||||
]
|
||||
}
|
9
packages/kbn-discover-utils/types.ts
Normal file
9
packages/kbn-discover-utils/types.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
export type { DataTableRecord, EsHitRecord } from './src/types';
|
|
@ -7,8 +7,8 @@
|
|||
*/
|
||||
import type { DataView } from '@kbn/data-views-plugin/common';
|
||||
import { cloneDeep } from 'lodash';
|
||||
import { buildDataTableRecord } from '../utils/build_data_record';
|
||||
import type { EsHitRecord } from '../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
/*
|
||||
Extensions:
|
||||
gif: 5
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { buildDataViewMock } from './data_view';
|
||||
import { buildDataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
|
||||
const fields = [
|
||||
{
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { buildDataViewMock } from './data_view';
|
||||
import { buildDataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
|
||||
const fields = [
|
||||
{
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { DataViewsContract } from '@kbn/data-views-plugin/public';
|
||||
import { dataViewMock } from './data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { dataViewComplexMock } from './data_view_complex';
|
||||
import { dataViewWithTimefieldMock } from './data_view_with_timefield';
|
||||
|
||||
|
|
|
@ -7,15 +7,14 @@
|
|||
*/
|
||||
|
||||
import type { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { dataViewMock } from './data_view';
|
||||
import { dataViewMock, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { dataViewComplexMock } from './data_view_complex';
|
||||
import { esHits } from './es_hits';
|
||||
import { esHitsComplex } from './es_hits_complex';
|
||||
import { discoverServiceMock } from './services';
|
||||
import { GridContext } from '../components/discover_grid/discover_grid_context';
|
||||
import { convertValueToString } from '../utils/convert_value_to_string';
|
||||
import { buildDataTableRecord } from '../utils/build_data_record';
|
||||
import { EsHitRecord } from '../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
const buildGridContext = (dataView: DataView, rows: EsHitRecord[]): GridContext => {
|
||||
const usedRows = rows.map((row) => {
|
||||
|
@ -43,6 +42,6 @@ const buildGridContext = (dataView: DataView, rows: EsHitRecord[]): GridContext
|
|||
};
|
||||
};
|
||||
|
||||
export const discoverGridContextMock = buildGridContext(dataViewMock, esHits);
|
||||
export const discoverGridContextMock = buildGridContext(dataViewMock, esHitsMock);
|
||||
|
||||
export const discoverGridContextComplexMock = buildGridContext(dataViewComplexMock, esHitsComplex);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import { SavedSearch } from '@kbn/saved-search-plugin/public';
|
||||
import { createSearchSourceMock } from '@kbn/data-plugin/public/mocks';
|
||||
import { dataViewMock } from './data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { dataViewWithTimefieldMock } from './data_view_with_timefield';
|
||||
import { dataViewAdHoc } from './data_view_complex';
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
|
||||
export const mockAnchorHit = buildDataTableRecord(
|
||||
{
|
||||
|
|
|
@ -12,7 +12,7 @@ import { mountWithIntl } from '@kbn/test-jest-helpers';
|
|||
import { createFilterManagerMock } from '@kbn/data-plugin/public/query/filter_manager/filter_manager.mock';
|
||||
import { mockTopNavMenu } from './__mocks__/top_nav_menu';
|
||||
import { ContextAppContent } from './context_app_content';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { ContextApp } from './context_app';
|
||||
import { DiscoverServices } from '../../build_services';
|
||||
import { dataViewsMock } from '../../__mocks__/data_views';
|
||||
|
|
|
@ -14,12 +14,12 @@ import { GetStateReturn } from './services/context_state';
|
|||
import { SortDirection } from '@kbn/data-plugin/public';
|
||||
import { ContextAppContent, ContextAppContentProps } from './context_app_content';
|
||||
import { LoadingStatus } from './services/context_query_state';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { discoverServiceMock } from '../../__mocks__/services';
|
||||
import { DiscoverGrid } from '../../components/discover_grid/discover_grid';
|
||||
import { DocTableWrapper } from '../../components/doc_table/doc_table_wrapper';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { buildDataTableRecord } from '../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
|
||||
describe('ContextAppContent test', () => {
|
||||
|
|
|
@ -13,6 +13,7 @@ import type { DataView } from '@kbn/data-views-plugin/public';
|
|||
import { SortDirection } from '@kbn/data-plugin/public';
|
||||
import type { SortOrder } from '@kbn/saved-search-plugin/public';
|
||||
import { CellActionsProvider } from '@kbn/cell-actions';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { CONTEXT_STEP_SETTING, DOC_HIDE_TIME_COLUMN_SETTING } from '../../../common';
|
||||
import { LoadingStatus } from './services/context_query_state';
|
||||
import { ActionBar } from './components/action_bar/action_bar';
|
||||
|
@ -23,7 +24,6 @@ import { SurrDocType } from './services/context';
|
|||
import { MAX_CONTEXT_SIZE, MIN_CONTEXT_SIZE } from './services/constants';
|
||||
import { DocTableContext } from '../../components/doc_table/doc_table_context';
|
||||
import { useDiscoverServices } from '../../hooks/use_discover_services';
|
||||
import type { DataTableRecord } from '../../types';
|
||||
import { DiscoverGridFlyout } from '../../components/discover_grid/discover_grid_flyout';
|
||||
import { DocViewer } from '../../services/doc_views/components/doc_viewer';
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import { i18n } from '@kbn/i18n';
|
|||
import { MarkdownSimple, toMountPoint, wrapWithTheme } from '@kbn/kibana-react-plugin/public';
|
||||
import type { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { SortDirection } from '@kbn/data-plugin/public';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { CONTEXT_TIE_BREAKER_FIELDS_SETTING } from '../../../../common';
|
||||
import { fetchAnchor } from '../services/anchor';
|
||||
import { fetchSurroundingDocs, SurrDocType } from '../services/context';
|
||||
|
@ -22,7 +23,6 @@ import {
|
|||
import { AppState } from '../services/context_state';
|
||||
import { getFirstSortableField } from '../utils/sorting';
|
||||
import { useDiscoverServices } from '../../../hooks/use_discover_services';
|
||||
import type { DataTableRecord } from '../../../types';
|
||||
|
||||
const createError = (statusKey: string, reason: FailureReason, error?: Error) => ({
|
||||
[statusKey]: { value: LoadingStatus.FAILED, error, reason },
|
||||
|
|
|
@ -11,7 +11,7 @@ import moment from 'moment';
|
|||
import { of } from 'rxjs';
|
||||
import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
|
||||
import { IKibanaSearchResponse } from '@kbn/data-plugin/common';
|
||||
import { EsHitRecord } from '../../../types';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
type SortHit = {
|
||||
[key in string]: number; // timeField name
|
||||
|
|
|
@ -9,7 +9,7 @@ import { DataView } from '@kbn/data-views-plugin/public';
|
|||
import { SortDirection } from '@kbn/data-plugin/public';
|
||||
import { createSearchSourceStub } from './_stubs';
|
||||
import { fetchAnchor, updateSearchSource } from './anchor';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { savedSearchMock } from '../../../__mocks__/saved_search';
|
||||
|
||||
describe('context app', function () {
|
||||
|
|
|
@ -9,8 +9,8 @@ import { lastValueFrom } from 'rxjs';
|
|||
import { i18n } from '@kbn/i18n';
|
||||
import { ISearchSource, EsQuerySortValue } from '@kbn/data-plugin/public';
|
||||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { DataTableRecord, EsHitRecord } from '../../../types';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
export async function fetchAnchor(
|
||||
anchorId: string,
|
||||
|
|
|
@ -14,8 +14,8 @@ import { Query } from '@kbn/es-query';
|
|||
import { createContextSearchSourceStub } from './_stubs';
|
||||
import { fetchSurroundingDocs, SurrDocType } from './context';
|
||||
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
|
||||
import { DataTableRecord, EsHitRecord } from '../../../types';
|
||||
import { buildDataTableRecord, buildDataTableRecordList } from '../../../utils/build_data_record';
|
||||
import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { buildDataTableRecord, buildDataTableRecordList } from '@kbn/discover-utils';
|
||||
|
||||
const MS_PER_DAY = 24 * 60 * 60 * 1000;
|
||||
const ANCHOR_TIMESTAMP = new Date(MS_PER_DAY).toJSON();
|
||||
|
|
|
@ -14,8 +14,8 @@ import { createContextSearchSourceStub } from './_stubs';
|
|||
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
|
||||
import { Query } from '@kbn/es-query';
|
||||
import { fetchSurroundingDocs, SurrDocType } from './context';
|
||||
import { DataTableRecord } from '../../../types';
|
||||
import { buildDataTableRecord, buildDataTableRecordList } from '../../../utils/build_data_record';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { buildDataTableRecord, buildDataTableRecordList } from '@kbn/discover-utils';
|
||||
|
||||
const MS_PER_DAY = 24 * 60 * 60 * 1000;
|
||||
const ANCHOR_TIMESTAMP = new Date(MS_PER_DAY).toJSON();
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { updateSearchSource } from './context';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { createSearchSourceMock } from '@kbn/data-plugin/public/mocks';
|
||||
|
||||
describe('context api', function () {
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
import type { Filter } from '@kbn/es-query';
|
||||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { DataPublicPluginStart, ISearchSource } from '@kbn/data-plugin/public';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { reverseSortDir, SortDirection } from '../utils/sorting';
|
||||
import { convertIsoToMillis, extractNanos } from '../utils/date_conversion';
|
||||
import { fetchHitsInInterval } from '../utils/fetch_hits_in_interval';
|
||||
import { generateIntervals } from '../utils/generate_intervals';
|
||||
import { getEsQuerySearchAfter } from '../utils/get_es_query_search_after';
|
||||
import { getEsQuerySort } from '../utils/get_es_query_sort';
|
||||
import { DataTableRecord } from '../../../types';
|
||||
|
||||
export enum SurrDocType {
|
||||
SUCCESSORS = 'successors',
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { DataTableRecord } from '../../../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
export interface ContextFetchState {
|
||||
/**
|
||||
|
|
|
@ -14,7 +14,7 @@ import { FilterManager } from '@kbn/data-plugin/public';
|
|||
import { coreMock } from '@kbn/core/public/mocks';
|
||||
import { SEARCH_FIELDS_FROM_SOURCE } from '../../../../common';
|
||||
import { discoverServiceMock } from '../../../__mocks__/services';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
|
||||
discoverServiceMock.data.query.filterManager.getAppFilters = jest.fn(() => []);
|
||||
discoverServiceMock.data.query.filterManager.getGlobalFilters = jest.fn(() => []);
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
import { lastValueFrom } from 'rxjs';
|
||||
import { ISearchSource, EsQuerySortValue, SortDirection } from '@kbn/data-plugin/public';
|
||||
import { EsQuerySearchAfter } from '@kbn/data-plugin/common';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { convertTimeValueToIso } from './date_conversion';
|
||||
import { IntervalValue } from './generate_intervals';
|
||||
import type { DataTableRecord } from '../../../types';
|
||||
|
||||
interface RangeQuery {
|
||||
format: string;
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
import type { EsQuerySearchAfter } from '@kbn/data-plugin/common';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { SurrDocType } from '../services/context';
|
||||
import type { DataTableRecord } from '../../../types';
|
||||
|
||||
/**
|
||||
* Get the searchAfter query value for elasticsearch
|
||||
|
|
|
@ -14,7 +14,7 @@ import { ReactWrapper } from 'enzyme';
|
|||
import { findTestSubject } from '@elastic/eui/lib/test';
|
||||
import { Doc, DocProps } from './doc';
|
||||
import { SEARCH_FIELDS_FROM_SOURCE as mockSearchFieldsFromSource } from '../../../../common';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
|
||||
const mockSearchApi = jest.fn();
|
||||
|
|
|
@ -11,12 +11,12 @@ import { FormattedMessage } from '@kbn/i18n-react';
|
|||
import { EuiCallOut, EuiLink, EuiLoadingSpinner, EuiPage, EuiPageBody } from '@elastic/eui';
|
||||
import type { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { getRootBreadcrumbs } from '../../../utils/breadcrumbs';
|
||||
import { DocViewer } from '../../../services/doc_views/components/doc_viewer';
|
||||
import { ElasticRequestState } from '../types';
|
||||
import { useEsDocSearch } from '../../../hooks/use_es_doc_search';
|
||||
import { useDiscoverServices } from '../../../hooks/use_discover_services';
|
||||
import type { DataTableRecord } from '../../../types';
|
||||
|
||||
export interface DocProps {
|
||||
/**
|
||||
|
|
|
@ -13,6 +13,8 @@ import { RequestAdapter } from '@kbn/inspector-plugin/common';
|
|||
import { action } from '@storybook/addon-actions';
|
||||
import { createHashHistory } from 'history';
|
||||
import { SavedSearch } from '@kbn/saved-search-plugin/public';
|
||||
import { buildDataTableRecordList } from '@kbn/discover-utils';
|
||||
import { esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { FetchStatus } from '../../../../types';
|
||||
import {
|
||||
AvailableFields$,
|
||||
|
@ -21,8 +23,6 @@ import {
|
|||
DataTotalHits$,
|
||||
RecordRawType,
|
||||
} from '../../../services/discover_data_state_container';
|
||||
import { buildDataTableRecordList } from '../../../../../utils/build_data_record';
|
||||
import { esHits } from '../../../../../__mocks__/es_hits';
|
||||
import { DiscoverLayoutProps } from '../discover_layout';
|
||||
import {
|
||||
DiscoverStateContainer,
|
||||
|
@ -38,7 +38,7 @@ const documentObservables = {
|
|||
|
||||
documents$: new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: buildDataTableRecordList(esHits),
|
||||
result: buildDataTableRecordList(esHitsMock),
|
||||
}) as DataDocuments$,
|
||||
|
||||
availableFields$: new BehaviorSubject({
|
||||
|
@ -48,7 +48,7 @@ const documentObservables = {
|
|||
|
||||
totalHits$: new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: Number(esHits.length),
|
||||
result: Number(esHitsMock.length),
|
||||
}) as DataTotalHits$,
|
||||
fetch$: new Observable(),
|
||||
};
|
||||
|
@ -62,7 +62,7 @@ const plainRecordObservables = {
|
|||
|
||||
documents$: new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: buildDataTableRecordList(esHits),
|
||||
result: buildDataTableRecordList(esHitsMock),
|
||||
recordRawType: RecordRawType.PLAIN,
|
||||
}) as DataDocuments$,
|
||||
|
||||
|
|
|
@ -11,15 +11,14 @@ import { act } from 'react-dom/test-utils';
|
|||
import { BehaviorSubject } from 'rxjs';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { setHeaderActionMenuMounter } from '../../../../kibana_services';
|
||||
import { esHits } from '../../../../__mocks__/es_hits';
|
||||
import { DataDocuments$ } from '../../services/discover_data_state_container';
|
||||
import { discoverServiceMock } from '../../../../__mocks__/services';
|
||||
import { FetchStatus } from '../../../types';
|
||||
import { DiscoverDocuments, onResize } from './discover_documents';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { EsHitRecord } from '../../../../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { DiscoverMainProvider } from '../../services/discover_state_provider';
|
||||
import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock';
|
||||
import { DiscoverAppState } from '../../services/discover_app_state_container';
|
||||
|
@ -68,13 +67,13 @@ describe('Discover documents layout', () => {
|
|||
});
|
||||
|
||||
test('render complete when loading but documents were already fetched', async () => {
|
||||
const component = await mountComponent(FetchStatus.LOADING, esHits);
|
||||
const component = await mountComponent(FetchStatus.LOADING, esHitsMock);
|
||||
expect(component.find('.dscDocuments__loading').exists()).toBeFalsy();
|
||||
expect(component.find('.dscTable').exists()).toBeTruthy();
|
||||
});
|
||||
|
||||
test('render complete', async () => {
|
||||
const component = await mountComponent(FetchStatus.COMPLETE, esHits);
|
||||
const component = await mountComponent(FetchStatus.COMPLETE, esHitsMock);
|
||||
expect(component.find('.dscDocuments__loading').exists()).toBeFalsy();
|
||||
expect(component.find('.dscTable').exists()).toBeTruthy();
|
||||
});
|
||||
|
|
|
@ -19,6 +19,7 @@ import { css } from '@emotion/react';
|
|||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { SortOrder } from '@kbn/saved-search-plugin/public';
|
||||
import { CellActionsProvider } from '@kbn/cell-actions';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { useInternalStateSelector } from '../../services/discover_internal_state_container';
|
||||
import { useAppStateSelector } from '../../services/discover_app_state_container';
|
||||
import { useDiscoverServices } from '../../../../hooks/use_discover_services';
|
||||
|
@ -40,7 +41,6 @@ import { DocTableInfinite } from '../../../../components/doc_table/doc_table_inf
|
|||
import { DocumentExplorerCallout } from '../document_explorer_callout';
|
||||
import { DocumentExplorerUpdateCallout } from '../document_explorer_callout/document_explorer_update_callout';
|
||||
import { DiscoverTourProvider } from '../../../../components/discover_tour';
|
||||
import { DataTableRecord } from '../../../../types';
|
||||
import { getRawRecordType } from '../../utils/get_raw_record_type';
|
||||
import { DiscoverGridFlyout } from '../../../../components/discover_grid/discover_grid_flyout';
|
||||
import { DocViewer } from '../../../../services/doc_views/components/doc_viewer';
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
import React from 'react';
|
||||
import { BehaviorSubject, of } from 'rxjs';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { esHits } from '../../../../__mocks__/es_hits';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { savedSearchMock } from '../../../../__mocks__/saved_search';
|
||||
import {
|
||||
AvailableFields$,
|
||||
|
@ -23,7 +22,7 @@ import { discoverServiceMock } from '../../../../__mocks__/services';
|
|||
import { FetchStatus } from '../../../types';
|
||||
import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { DiscoverHistogramLayout, DiscoverHistogramLayoutProps } from './discover_histogram_layout';
|
||||
import { SavedSearch, VIEW_MODE } from '@kbn/saved-search-plugin/public';
|
||||
import { CoreTheme } from '@kbn/core/public';
|
||||
|
@ -88,7 +87,7 @@ const mountComponent = async ({
|
|||
|
||||
const documents$ = new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: esHits.map((esHit) => buildDataTableRecord(esHit, dataViewMock)),
|
||||
result: esHitsMock.map((esHit) => buildDataTableRecord(esHit, dataViewMock)),
|
||||
}) as DataDocuments$;
|
||||
|
||||
const availableFields$ = new BehaviorSubject({
|
||||
|
@ -98,7 +97,7 @@ const mountComponent = async ({
|
|||
|
||||
const totalHits$ = new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: Number(esHits.length),
|
||||
result: Number(esHitsMock.length),
|
||||
}) as DataTotalHits$;
|
||||
|
||||
const savedSearchData$ = {
|
||||
|
|
|
@ -13,8 +13,7 @@ import { mountWithIntl } from '@kbn/test-jest-helpers';
|
|||
import type { Query, AggregateQuery } from '@kbn/es-query';
|
||||
import { setHeaderActionMenuMounter } from '../../../../kibana_services';
|
||||
import { DiscoverLayout, SIDEBAR_CLOSED_KEY } from './discover_layout';
|
||||
import { esHits } from '../../../../__mocks__/es_hits';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { savedSearchMock } from '../../../../__mocks__/saved_search';
|
||||
import {
|
||||
createSearchSourceMock,
|
||||
|
@ -35,7 +34,7 @@ import { RequestAdapter } from '@kbn/inspector-plugin/common';
|
|||
import { LocalStorageMock } from '../../../../__mocks__/local_storage_mock';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { DiscoverServices } from '../../../../build_services';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock';
|
||||
import { createSearchSessionMock } from '../../../../__mocks__/search_session';
|
||||
import { getSessionServiceMock } from '@kbn/data-plugin/public/search/session/mocks';
|
||||
|
@ -83,7 +82,7 @@ async function mountComponent(
|
|||
|
||||
const documents$ = new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: esHits.map((esHit) => buildDataTableRecord(esHit, dataView)),
|
||||
result: esHitsMock.map((esHit) => buildDataTableRecord(esHit, dataView)),
|
||||
}) as DataDocuments$;
|
||||
|
||||
const availableFields$ = new BehaviorSubject({
|
||||
|
@ -93,7 +92,7 @@ async function mountComponent(
|
|||
|
||||
const totalHits$ = new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: Number(esHits.length),
|
||||
result: Number(esHitsMock.length),
|
||||
}) as DataTotalHits$;
|
||||
|
||||
stateContainer.dataState.data$ = {
|
||||
|
|
|
@ -10,8 +10,7 @@ import React from 'react';
|
|||
import { BehaviorSubject, of } from 'rxjs';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { esHits } from '../../../../__mocks__/es_hits';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import {
|
||||
AvailableFields$,
|
||||
DataDocuments$,
|
||||
|
@ -23,7 +22,7 @@ import { createDiscoverServicesMock } from '../../../../__mocks__/services';
|
|||
import { FetchStatus } from '../../../types';
|
||||
import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { DiscoverMainContent, DiscoverMainContentProps } from './discover_main_content';
|
||||
import { SavedSearch, VIEW_MODE } from '@kbn/saved-search-plugin/public';
|
||||
import { CoreTheme } from '@kbn/core/public';
|
||||
|
@ -69,7 +68,7 @@ const mountComponent = async ({
|
|||
|
||||
const documents$ = new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: esHits.map((esHit) => buildDataTableRecord(esHit, dataViewMock)),
|
||||
result: esHitsMock.map((esHit) => buildDataTableRecord(esHit, dataViewMock)),
|
||||
}) as DataDocuments$;
|
||||
|
||||
const availableFields$ = new BehaviorSubject({
|
||||
|
@ -79,7 +78,7 @@ const mountComponent = async ({
|
|||
|
||||
const totalHits$ = new BehaviorSubject({
|
||||
fetchStatus: FetchStatus.COMPLETE,
|
||||
result: Number(esHits.length),
|
||||
result: Number(esHitsMock.length),
|
||||
}) as DataTotalHits$;
|
||||
|
||||
const savedSearchData$ = {
|
||||
|
|
|
@ -33,8 +33,8 @@ import * as ExistingFieldsServiceApi from '@kbn/unified-field-list/src/services/
|
|||
import { resetExistingFieldsCache } from '@kbn/unified-field-list/src/hooks/use_existing_fields';
|
||||
import { createDiscoverServicesMock } from '../../../../__mocks__/services';
|
||||
import type { AggregateQuery, Query } from '@kbn/es-query';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { type DataTableRecord } from '../../../../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import type { DiscoverCustomizationId } from '../../../../customizations/customization_service';
|
||||
import type { SearchBarCustomization } from '../../../../customizations';
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import React, { ReactElement } from 'react';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DiscoverTopNav, DiscoverTopNavProps } from './discover_topnav';
|
||||
import { TopNavMenu, TopNavMenuData } from '@kbn/navigation-plugin/public';
|
||||
import { Query } from '@kbn/es-query';
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { getTopNavLinks } from './get_top_nav_links';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DiscoverServices } from '../../../../build_services';
|
||||
import { DiscoverStateContainer } from '../../services/discover_state';
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
import * as savedObjectsPlugin from '@kbn/saved-objects-plugin/public';
|
||||
jest.mock('@kbn/saved-objects-plugin/public');
|
||||
import type { DataView } from '@kbn/data-views-plugin/common';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield';
|
||||
import { onSaveSearch } from './on_save_search';
|
||||
import { savedSearchMock } from '../../../../__mocks__/saved_search';
|
||||
|
|
|
@ -13,7 +13,7 @@ import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
|||
import { AlertsPopover } from './open_alerts_popover';
|
||||
import { discoverServiceMock } from '../../../../__mocks__/services';
|
||||
import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock';
|
||||
|
||||
const Context = ({ children }: { children: ReactNode }) => <>{children}</>;
|
||||
|
|
|
@ -9,7 +9,7 @@ import React from 'react';
|
|||
import { act } from 'react-dom/test-utils';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { DataViewListItem } from '@kbn/data-views-plugin/public';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DiscoverMainApp } from './discover_main_app';
|
||||
import { DiscoverTopNav } from './components/top_nav/discover_topnav';
|
||||
import { setHeaderActionMenuMounter, setUrlTracker } from '../../kibana_services';
|
||||
|
|
|
@ -13,7 +13,7 @@ import { Adapters, RequestAdapter } from '@kbn/inspector-plugin/common';
|
|||
import { OverlayRef } from '@kbn/core/public';
|
||||
import { AggregateRequestAdapter } from '../utils/aggregate_request_adapter';
|
||||
import { getDiscoverStateMock } from '../../../__mocks__/discover_state.mock';
|
||||
import { DataTableRecord } from '../../../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
describe('test useInspector', () => {
|
||||
test('inspector open function is executed, expanded doc is closed', async () => {
|
||||
|
|
|
@ -13,9 +13,9 @@ import { discoverServiceMock } from '../../../__mocks__/services';
|
|||
import { useTextBasedQueryLanguage } from './use_text_based_query_language';
|
||||
import { FetchStatus } from '../../types';
|
||||
import { RecordRawType } from '../services/discover_data_state_container';
|
||||
import { DataTableRecord } from '../../../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { AggregateQuery, Query } from '@kbn/es-query';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DataViewListItem } from '@kbn/data-views-plugin/common';
|
||||
import { savedSearchMock } from '../../../__mocks__/saved_search';
|
||||
import { getDiscoverStateMock } from '../../../__mocks__/discover_state.mock';
|
||||
|
|
|
@ -14,6 +14,7 @@ import { AggregateQuery, Query } from '@kbn/es-query';
|
|||
import type { SearchResponse } from '@elastic/elasticsearch/lib/api/types';
|
||||
import { DataView } from '@kbn/data-views-plugin/common';
|
||||
import { reportPerformanceMetricEvent } from '@kbn/ebt-tools';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { getDataViewByTextBasedQueryLang } from '../utils/get_data_view_by_text_based_query_lang';
|
||||
import { isTextBasedQuery } from '../utils/is_text_based_query';
|
||||
import { getRawRecordType } from '../utils/get_raw_record_type';
|
||||
|
@ -26,7 +27,6 @@ import { validateTimeRange } from '../utils/validate_time_range';
|
|||
import { fetchAll } from '../utils/fetch_all';
|
||||
import { sendResetMsg } from '../hooks/use_saved_search_messages';
|
||||
import { getFetch$ } from '../utils/get_fetch_observable';
|
||||
import { DataTableRecord } from '../../../types';
|
||||
|
||||
export interface SavedSearchData {
|
||||
main$: DataMain$;
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
ReduxLikeStateContainer,
|
||||
} from '@kbn/kibana-utils-plugin/common';
|
||||
import { DataView, DataViewListItem } from '@kbn/data-views-plugin/common';
|
||||
import { DataTableRecord } from '../../../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
export interface InternalState {
|
||||
dataView: DataView | undefined;
|
||||
|
|
|
@ -10,7 +10,7 @@ import { getSavedSearchContainer, isEqualSavedSearch } from './discover_saved_se
|
|||
import type { SavedSearch } from '@kbn/saved-search-plugin/public';
|
||||
import { discoverServiceMock } from '../../../__mocks__/services';
|
||||
import { savedSearchMock, savedSearchMockWithTimeField } from '../../../__mocks__/saved_search';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { dataViewComplexMock } from '../../../__mocks__/data_view_complex';
|
||||
import { getDiscoverGlobalStateContainer } from './discover_global_state_container';
|
||||
import { createKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
|
||||
|
|
|
@ -21,7 +21,7 @@ import {
|
|||
savedSearchMockWithTimeFieldNew,
|
||||
} from '../../../__mocks__/saved_search';
|
||||
import { discoverServiceMock } from '../../../__mocks__/services';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DiscoverAppStateContainer } from './discover_app_state_container';
|
||||
import { waitFor } from '@testing-library/react';
|
||||
import { FetchStatus } from '../../types';
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { calcFieldCounts } from './calc_field_counts';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
|
||||
describe('calcFieldCounts', () => {
|
||||
test('returns valid field count data', async () => {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
import { DataTableRecord } from '../../../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
/**
|
||||
* This function is calculating stats of the available fields, for usage in sidebar and sharing
|
||||
|
|
|
@ -23,8 +23,8 @@ import {
|
|||
} from '../services/discover_data_state_container';
|
||||
import { fetchDocuments } from './fetch_documents';
|
||||
import { fetchSql } from './fetch_sql';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
jest.mock('./fetch_documents', () => ({
|
||||
fetchDocuments: jest.fn().mockResolvedValue([]),
|
||||
}));
|
||||
|
|
|
@ -13,9 +13,9 @@ import { discoverServiceMock } from '../../../__mocks__/services';
|
|||
import { IKibanaSearchResponse } from '@kbn/data-plugin/public';
|
||||
import { SearchResponse } from '@elastic/elasticsearch/lib/api/types';
|
||||
import { FetchDeps } from './fetch_all';
|
||||
import type { EsHitRecord } from '../../../types';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
|
||||
const getDeps = () =>
|
||||
({
|
||||
|
|
|
@ -9,8 +9,9 @@ import { i18n } from '@kbn/i18n';
|
|||
import { filter, map } from 'rxjs/operators';
|
||||
import { lastValueFrom } from 'rxjs';
|
||||
import { isCompleteResponse, ISearchSource } from '@kbn/data-plugin/public';
|
||||
import type { RecordsFetchResponse, EsHitRecord } from '../../../types';
|
||||
import { buildDataTableRecordList } from '../../../utils/build_data_record';
|
||||
import { buildDataTableRecordList } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import type { RecordsFetchResponse } from '../../../types';
|
||||
import { SAMPLE_SIZE_SETTING } from '../../../../common';
|
||||
import { FetchDeps } from './fetch_all';
|
||||
|
||||
|
|
|
@ -14,7 +14,8 @@ import type { ExpressionsStart } from '@kbn/expressions-plugin/public';
|
|||
import type { Datatable } from '@kbn/expressions-plugin/public';
|
||||
import type { DataView } from '@kbn/data-views-plugin/common';
|
||||
import { textBasedQueryStateToAstWithValidation } from '@kbn/data-plugin/common';
|
||||
import type { RecordsFetchResponse, DataTableRecord } from '../../../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { RecordsFetchResponse } from '../../../types';
|
||||
|
||||
interface SQLErrorResponse {
|
||||
error: {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import { getDataViewByTextBasedQueryLang } from './get_data_view_by_text_based_query_lang';
|
||||
import { dataViewAdHoc } from '../../../__mocks__/data_view_complex';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { discoverServiceMock } from '../../../__mocks__/services';
|
||||
|
||||
describe('getDataViewByTextBasedQueryLang', () => {
|
||||
|
|
|
@ -11,7 +11,7 @@ import { createSearchSourceMock } from '@kbn/data-plugin/public/mocks';
|
|||
import { VIEW_MODE } from '@kbn/saved-search-plugin/common';
|
||||
import { dataViewWithTimefieldMock } from '../../../__mocks__/data_view_with_timefield';
|
||||
import { savedSearchMock, savedSearchMockWithSQL } from '../../../__mocks__/saved_search';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { discoverServiceMock } from '../../../__mocks__/services';
|
||||
|
||||
describe('getStateDefaults', () => {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import { loadDataView } from './resolve_data_view';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { discoverServiceMock as services } from '../../../__mocks__/services';
|
||||
|
||||
describe('Resolve data view tests', () => {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import { updateVolatileSearchSource } from './update_search_source';
|
||||
import { createSearchSourceMock } from '@kbn/data-plugin/common/search/search_source/mocks';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import type { SortOrder } from '@kbn/saved-search-plugin/public';
|
||||
import { discoverServiceMock } from '../../../__mocks__/services';
|
||||
import { IUiSettingsClient } from '@kbn/core-ui-settings-browser';
|
||||
|
|
|
@ -10,7 +10,7 @@ import { EuiListGroupItem, EuiListGroupItemProps } from '@elastic/eui';
|
|||
import { DataView, DataViewField } from '@kbn/data-views-plugin/common';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import React from 'react';
|
||||
import { buildDataViewMock } from '../../__mocks__/data_view';
|
||||
import { buildDataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { discoverServiceMock } from '../../__mocks__/services';
|
||||
import { buildEditFieldButton } from './build_edit_field_button';
|
||||
|
||||
|
|
|
@ -10,15 +10,13 @@ import { ReactWrapper } from 'enzyme';
|
|||
import { EuiCopy } from '@elastic/eui';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
import { findTestSubject } from '@elastic/eui/lib/test';
|
||||
import { esHits } from '../../__mocks__/es_hits';
|
||||
import { buildDataViewMock, deepMockedFields } from '../../__mocks__/data_view';
|
||||
import { buildDataViewMock, deepMockedFields, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { DiscoverGrid, DiscoverGridProps } from './discover_grid';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { discoverServiceMock } from '../../__mocks__/services';
|
||||
import { buildDataTableRecord } from '../../utils/build_data_record';
|
||||
import { getDocId } from '../../utils/get_doc_id';
|
||||
import { EsHitRecord } from '../../types';
|
||||
import { buildDataTableRecord, getDocId } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
const mockUseDataGridColumnsCellActions = jest.fn((prop: unknown) => []);
|
||||
jest.mock('@kbn/cell-actions', () => ({
|
||||
|
@ -48,7 +46,7 @@ function getProps() {
|
|||
onResize: jest.fn(),
|
||||
onSetColumns: jest.fn(),
|
||||
onSort: jest.fn(),
|
||||
rows: esHits.map((hit) => buildDataTableRecord(hit, dataViewMock)),
|
||||
rows: esHitsMock.map((hit) => buildDataTableRecord(hit, dataViewMock)),
|
||||
sampleSize: 30,
|
||||
searchDescription: '',
|
||||
searchTitle: '',
|
||||
|
@ -122,17 +120,17 @@ describe('DiscoverGrid', () => {
|
|||
});
|
||||
|
||||
test('Allows selection/deselection of multiple documents', async () => {
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
expect(getSelectedDocNr(component)).toBe(1);
|
||||
await toggleDocSelection(component, esHits[1]);
|
||||
await toggleDocSelection(component, esHitsMock[1]);
|
||||
expect(getSelectedDocNr(component)).toBe(2);
|
||||
await toggleDocSelection(component, esHits[1]);
|
||||
await toggleDocSelection(component, esHitsMock[1]);
|
||||
expect(getSelectedDocNr(component)).toBe(1);
|
||||
});
|
||||
|
||||
test('deselection of all selected documents', async () => {
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHits[1]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
await toggleDocSelection(component, esHitsMock[1]);
|
||||
expect(getSelectedDocNr(component)).toBe(2);
|
||||
findTestSubject(component, 'dscGridSelectionBtn').simulate('click');
|
||||
findTestSubject(component, 'dscGridClearSelectedDocuments').simulate('click');
|
||||
|
@ -140,8 +138,8 @@ describe('DiscoverGrid', () => {
|
|||
});
|
||||
|
||||
test('showing only selected documents and undo selection', async () => {
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHits[1]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
await toggleDocSelection(component, esHitsMock[1]);
|
||||
expect(getSelectedDocNr(component)).toBe(2);
|
||||
findTestSubject(component, 'dscGridSelectionBtn').simulate('click');
|
||||
findTestSubject(component, 'dscGridShowSelectedDocuments').simulate('click');
|
||||
|
@ -153,8 +151,8 @@ describe('DiscoverGrid', () => {
|
|||
});
|
||||
|
||||
test('showing selected documents, underlying data changes, all documents are displayed, selection is gone', async () => {
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHits[1]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
await toggleDocSelection(component, esHitsMock[1]);
|
||||
expect(getSelectedDocNr(component)).toBe(2);
|
||||
findTestSubject(component, 'dscGridSelectionBtn').simulate('click');
|
||||
findTestSubject(component, 'dscGridShowSelectedDocuments').simulate('click');
|
||||
|
@ -179,18 +177,18 @@ describe('DiscoverGrid', () => {
|
|||
});
|
||||
|
||||
test('showing only selected documents and remove filter deselecting each doc manually', async () => {
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
findTestSubject(component, 'dscGridSelectionBtn').simulate('click');
|
||||
findTestSubject(component, 'dscGridShowSelectedDocuments').simulate('click');
|
||||
expect(getDisplayedDocNr(component)).toBe(1);
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
expect(getDisplayedDocNr(component)).toBe(5);
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
expect(getDisplayedDocNr(component)).toBe(5);
|
||||
});
|
||||
|
||||
test('copying selected documents to clipboard', async () => {
|
||||
await toggleDocSelection(component, esHits[0]);
|
||||
await toggleDocSelection(component, esHitsMock[0]);
|
||||
findTestSubject(component, 'dscGridSelectionBtn').simulate('click');
|
||||
expect(component.find(EuiCopy).prop('textToCopy')).toMatchInlineSnapshot(
|
||||
`"[{\\"_index\\":\\"i\\",\\"_id\\":\\"1\\",\\"_score\\":1,\\"_type\\":\\"_doc\\",\\"_source\\":{\\"date\\":\\"2020-20-01T12:12:12.123\\",\\"message\\":\\"test1\\",\\"bytes\\":20}}]"`
|
||||
|
|
|
@ -35,6 +35,7 @@ import { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
|
|||
import type { ToastsStart, IUiSettingsClient, HttpStart, CoreStart } from '@kbn/core/public';
|
||||
import { DataViewFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public';
|
||||
import { Serializable } from '@kbn/utility-types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { DocViewFilterFn } from '../../services/doc_views/doc_views_types';
|
||||
import { getSchemaDetectors } from './discover_grid_schema';
|
||||
import { DiscoverGridFlyout } from './discover_grid_flyout';
|
||||
|
@ -55,7 +56,7 @@ import {
|
|||
} from '../../../common';
|
||||
import { DiscoverGridDocumentToolbarBtn } from './discover_grid_document_selection';
|
||||
import { getShouldShowFieldHandler } from '../../utils/get_should_show_field_handler';
|
||||
import type { DataTableRecord, ValueToStringConverter } from '../../types';
|
||||
import type { ValueToStringConverter } from '../../types';
|
||||
import { useRowHeightsOptions } from '../../hooks/use_row_heights_options';
|
||||
import { convertValueToString } from '../../utils/convert_value_to_string';
|
||||
import { getRowsPerPageOptions, getDefaultRowsPerPage } from '../../utils/rows_per_page';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { getEuiGridColumns, getVisibleColumns } from './discover_grid_columns';
|
||||
import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield';
|
||||
import { discoverGridContextMock } from '../../__mocks__/grid_context';
|
||||
|
@ -40,99 +40,99 @@ describe('Discover grid columns', function () {
|
|||
onFilter: () => {},
|
||||
});
|
||||
expect(actual).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Array [
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": false,
|
||||
"showMoveRight": false,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "extension",
|
||||
"id": "extension",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": false,
|
||||
"showMoveRight": false,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "message",
|
||||
"id": "message",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": false,
|
||||
"showMoveRight": false,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "extension",
|
||||
"id": "extension",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": false,
|
||||
"showMoveRight": false,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "message",
|
||||
"id": "message",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
]
|
||||
`);
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it('returns eui grid columns with time column', async () => {
|
||||
|
@ -154,170 +154,170 @@ describe('Discover grid columns', function () {
|
|||
onFilter: () => {},
|
||||
});
|
||||
expect(actual).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Array [
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"display": <div
|
||||
aria-label="timestamp - this field represents the time that events occurred."
|
||||
>
|
||||
<EuiToolTip
|
||||
content="This field represents the time that events occurred."
|
||||
delay="regular"
|
||||
display="inlineBlock"
|
||||
position="top"
|
||||
"display": <div
|
||||
aria-label="timestamp - this field represents the time that events occurred."
|
||||
>
|
||||
<React.Fragment>
|
||||
timestamp
|
||||
|
||||
<EuiIcon
|
||||
type="clock"
|
||||
/>
|
||||
</React.Fragment>
|
||||
</EuiToolTip>
|
||||
</div>,
|
||||
"displayAsText": "timestamp",
|
||||
"id": "timestamp",
|
||||
"initialWidth": 210,
|
||||
"isSortable": true,
|
||||
"schema": "datetime",
|
||||
},
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
},
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
<EuiToolTip
|
||||
content="This field represents the time that events occurred."
|
||||
delay="regular"
|
||||
display="inlineBlock"
|
||||
position="top"
|
||||
>
|
||||
<React.Fragment>
|
||||
timestamp
|
||||
|
||||
<EuiIcon
|
||||
type="clock"
|
||||
/>
|
||||
</React.Fragment>
|
||||
</EuiToolTip>
|
||||
</div>,
|
||||
"displayAsText": "timestamp",
|
||||
"id": "timestamp",
|
||||
"initialWidth": 210,
|
||||
"isSortable": true,
|
||||
"schema": "datetime",
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "extension",
|
||||
"id": "extension",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
},
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "extension",
|
||||
"id": "extension",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "message",
|
||||
"id": "message",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
]
|
||||
`);
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
},
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "message",
|
||||
"id": "message",
|
||||
"isSortable": false,
|
||||
"schema": "string",
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it('returns eui grid with in memory sorting', async () => {
|
||||
|
@ -339,170 +339,170 @@ describe('Discover grid columns', function () {
|
|||
onFilter: () => {},
|
||||
});
|
||||
expect(actual).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Array [
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"showHide": false,
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"display": <div
|
||||
aria-label="timestamp - this field represents the time that events occurred."
|
||||
>
|
||||
<EuiToolTip
|
||||
content="This field represents the time that events occurred."
|
||||
delay="regular"
|
||||
display="inlineBlock"
|
||||
position="top"
|
||||
"display": <div
|
||||
aria-label="timestamp - this field represents the time that events occurred."
|
||||
>
|
||||
<React.Fragment>
|
||||
timestamp
|
||||
|
||||
<EuiIcon
|
||||
type="clock"
|
||||
/>
|
||||
</React.Fragment>
|
||||
</EuiToolTip>
|
||||
</div>,
|
||||
"displayAsText": "timestamp",
|
||||
"id": "timestamp",
|
||||
"initialWidth": 210,
|
||||
"isSortable": true,
|
||||
"schema": "datetime",
|
||||
},
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
},
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
<EuiToolTip
|
||||
content="This field represents the time that events occurred."
|
||||
delay="regular"
|
||||
display="inlineBlock"
|
||||
position="top"
|
||||
>
|
||||
<React.Fragment>
|
||||
timestamp
|
||||
|
||||
<EuiIcon
|
||||
type="clock"
|
||||
/>
|
||||
</React.Fragment>
|
||||
</EuiToolTip>
|
||||
</div>,
|
||||
"displayAsText": "timestamp",
|
||||
"id": "timestamp",
|
||||
"initialWidth": 210,
|
||||
"isSortable": true,
|
||||
"schema": "datetime",
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "extension",
|
||||
"id": "extension",
|
||||
"isSortable": true,
|
||||
"schema": "string",
|
||||
},
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
},
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
[Function],
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "extension",
|
||||
"id": "extension",
|
||||
"isSortable": true,
|
||||
"schema": "string",
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "message",
|
||||
"id": "message",
|
||||
"isSortable": true,
|
||||
"schema": "string",
|
||||
},
|
||||
]
|
||||
`);
|
||||
Object {
|
||||
"actions": Object {
|
||||
"additional": Array [
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnNameToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy name"
|
||||
id="discover.grid.copyColumnNameToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
Object {
|
||||
"data-test-subj": "gridCopyColumnValuesToClipBoardButton",
|
||||
"iconProps": Object {
|
||||
"size": "m",
|
||||
},
|
||||
"iconType": "copyClipboard",
|
||||
"label": <FormattedMessage
|
||||
defaultMessage="Copy column"
|
||||
id="discover.grid.copyColumnValuesToClipBoardButton"
|
||||
values={Object {}}
|
||||
/>,
|
||||
"onClick": [Function],
|
||||
"size": "xs",
|
||||
},
|
||||
],
|
||||
"showHide": Object {
|
||||
"iconType": "cross",
|
||||
"label": "Remove column",
|
||||
},
|
||||
"showMoveLeft": true,
|
||||
"showMoveRight": true,
|
||||
},
|
||||
"cellActions": Array [
|
||||
[Function],
|
||||
],
|
||||
"displayAsText": "message",
|
||||
"id": "message",
|
||||
"isSortable": true,
|
||||
"schema": "string",
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
|
||||
import React from 'react';
|
||||
import type { DataView } from '@kbn/data-views-plugin/public';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import type { DocViewFilterFn } from '../../services/doc_views/doc_views_types';
|
||||
import type { DataTableRecord, ValueToStringConverter } from '../../types';
|
||||
import type { ValueToStringConverter } from '../../types';
|
||||
|
||||
export interface GridContext {
|
||||
expanded?: DataTableRecord | undefined;
|
||||
|
|
|
@ -11,7 +11,7 @@ import { findTestSubject } from '@elastic/eui/lib/test';
|
|||
import { DiscoverGridDocumentToolbarBtn, SelectButton } from './discover_grid_document_selection';
|
||||
import { discoverGridContextMock } from '../../__mocks__/grid_context';
|
||||
import { DiscoverGridContext } from './discover_grid_context';
|
||||
import { getDocId } from '../../utils/get_doc_id';
|
||||
import { getDocId } from '@kbn/discover-utils';
|
||||
|
||||
describe('document selection', () => {
|
||||
describe('getDocId', () => {
|
||||
|
|
|
@ -19,8 +19,8 @@ import {
|
|||
import { FormattedMessage } from '@kbn/i18n-react';
|
||||
import { euiDarkVars as themeDark, euiLightVars as themeLight } from '@kbn/ui-theme';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { DiscoverGridContext } from './discover_grid_context';
|
||||
import type { DataTableRecord } from '../../types';
|
||||
|
||||
export const SelectButton = ({ rowIndex, setCellProps }: EuiDataGridCellValueElementProps) => {
|
||||
const { selectedDocs, expanded, rows, isDarkMode, setSelectedDocs } =
|
||||
|
|
|
@ -11,17 +11,16 @@ import { findTestSubject } from '@elastic/eui/lib/test';
|
|||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import type { Query, AggregateQuery } from '@kbn/es-query';
|
||||
import { DiscoverGridFlyout, DiscoverGridFlyoutProps } from './discover_grid_flyout';
|
||||
import { esHits } from '../../__mocks__/es_hits';
|
||||
import { createFilterManagerMock } from '@kbn/data-plugin/public/query/filter_manager/filter_manager.mock';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock, esHitsMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DiscoverServices } from '../../build_services';
|
||||
import { DocViewsRegistry } from '../../services/doc_views/doc_views_registry';
|
||||
import { setDocViewsRegistry } from '../../kibana_services';
|
||||
import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import type { DataView } from '@kbn/data-views-plugin/public';
|
||||
import type { DataTableRecord, EsHitRecord } from '../../types';
|
||||
import { buildDataTableRecord } from '../../utils/build_data_record';
|
||||
import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
import { ReactWrapper } from 'enzyme';
|
||||
|
||||
|
@ -63,7 +62,7 @@ describe('Discover flyout', function () {
|
|||
} as unknown as DiscoverServices;
|
||||
|
||||
const hit = buildDataTableRecord(
|
||||
hitIndex ? esHits[hitIndex] : (esHits[0] as EsHitRecord),
|
||||
hitIndex ? esHitsMock[hitIndex] : (esHitsMock[0] as EsHitRecord),
|
||||
dataViewMock
|
||||
);
|
||||
|
||||
|
@ -73,7 +72,9 @@ describe('Discover flyout', function () {
|
|||
hit,
|
||||
hits:
|
||||
hits ||
|
||||
esHits.map((entry: EsHitRecord) => buildDataTableRecord(entry, dataView || dataViewMock)),
|
||||
esHitsMock.map((entry: EsHitRecord) =>
|
||||
buildDataTableRecord(entry, dataView || dataViewMock)
|
||||
),
|
||||
query,
|
||||
onAddColumn: jest.fn(),
|
||||
onClose,
|
||||
|
@ -166,14 +167,14 @@ describe('Discover flyout', function () {
|
|||
|
||||
it('doesnt allow you to navigate to the next doc, if expanded doc is the last', async () => {
|
||||
// scenario: you've expanded a doc, and in the next request differed docs where fetched
|
||||
const { component, props } = await mountComponent({ hitIndex: esHits.length - 1 });
|
||||
const { component, props } = await mountComponent({ hitIndex: esHitsMock.length - 1 });
|
||||
findTestSubject(component, 'pagination-button-next').simulate('click');
|
||||
expect(props.setExpandedDoc).toHaveBeenCalledTimes(0);
|
||||
});
|
||||
|
||||
it('allows you to navigate to the previous doc, if expanded doc is the last', async () => {
|
||||
// scenario: you've expanded a doc, and in the next request differed docs where fetched
|
||||
const { component, props } = await mountComponent({ hitIndex: esHits.length - 1 });
|
||||
const { component, props } = await mountComponent({ hitIndex: esHitsMock.length - 1 });
|
||||
findTestSubject(component, 'pagination-button-previous').simulate('click');
|
||||
expect(props.setExpandedDoc).toHaveBeenCalledTimes(1);
|
||||
expect(props.setExpandedDoc.mock.calls[0][0].raw._id).toBe('4');
|
||||
|
|
|
@ -26,12 +26,12 @@ import {
|
|||
keys,
|
||||
} from '@elastic/eui';
|
||||
import type { Filter, Query, AggregateQuery } from '@kbn/es-query';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { DocViewer } from '../../services/doc_views/components/doc_viewer/doc_viewer';
|
||||
import { DocViewFilterFn } from '../../services/doc_views/doc_views_types';
|
||||
import { useNavigationProps } from '../../hooks/use_navigation_props';
|
||||
import { useDiscoverServices } from '../../hooks/use_discover_services';
|
||||
import { isTextBasedQuery } from '../../application/main/utils/is_text_based_query';
|
||||
import type { DataTableRecord } from '../../types';
|
||||
|
||||
export interface DiscoverGridFlyoutProps {
|
||||
savedSearchId?: string;
|
||||
|
|
|
@ -12,10 +12,10 @@ import { shallow } from 'enzyme';
|
|||
import { findTestSubject } from '@elastic/eui/lib/test';
|
||||
import { mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { getRenderCellValueFn } from './get_render_cell_value';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { buildDataTableRecord } from '../../utils/build_data_record';
|
||||
import { EsHitRecord } from '../../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
const mockServices = {
|
||||
settings: {
|
||||
|
|
|
@ -21,12 +21,12 @@ import {
|
|||
EuiFlexItem,
|
||||
} from '@elastic/eui';
|
||||
import { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
|
||||
import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { DiscoverGridContext } from './discover_grid_context';
|
||||
import { JsonCodeEditor } from '../json_code_editor/json_code_editor';
|
||||
import { defaultMonacoEditorWidth } from './constants';
|
||||
import { formatFieldValue } from '../../utils/format_value';
|
||||
import { formatHit } from '../../utils/format_hit';
|
||||
import { DataTableRecord, EsHitRecord } from '../../types';
|
||||
import { useDiscoverServices } from '../../hooks/use_discover_services';
|
||||
import { MAX_DOC_FIELDS_DISPLAYED } from '../../../common';
|
||||
import { type ShouldShowFieldInTableHandler } from '../../utils/get_should_show_field_handler';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import { getStateColumnActions } from './columns';
|
||||
import { configMock } from '../../../__mocks__/config';
|
||||
import { dataViewMock } from '../../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { dataViewsMock } from '../../../__mocks__/data_views';
|
||||
import { Capabilities } from '@kbn/core/types';
|
||||
import { DiscoverAppState } from '../../../application/main/services/discover_app_state_container';
|
||||
|
|
|
@ -18,8 +18,8 @@ import { discoverServiceMock } from '../../../__mocks__/services';
|
|||
import { DocViewer } from '../../../services/doc_views/components/doc_viewer';
|
||||
|
||||
import { DOC_HIDE_TIME_COLUMN_SETTING, MAX_DOC_FIELDS_DISPLAYED } from '../../../../common';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { EsHitRecord } from '../../../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
|
||||
jest.mock('../utils/row_formatter', () => {
|
||||
const originalModule = jest.requireActual('../utils/row_formatter');
|
||||
|
|
|
@ -12,12 +12,12 @@ import { i18n } from '@kbn/i18n';
|
|||
import { EuiButtonEmpty, EuiIcon } from '@elastic/eui';
|
||||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { Filter } from '@kbn/es-query';
|
||||
import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { formatFieldValue } from '../../../utils/format_value';
|
||||
import { DocViewRenderProps } from '../../../services/doc_views/doc_views_types';
|
||||
import { TableCell } from './table_row/table_cell';
|
||||
import { formatRow, formatTopLevelObject } from '../utils/row_formatter';
|
||||
import { DocViewFilterFn } from '../../../services/doc_views/doc_views_types';
|
||||
import { DataTableRecord, EsHitRecord } from '../../../types';
|
||||
import { TableRowDetails } from './table_row_details';
|
||||
import { useDiscoverServices } from '../../../hooks/use_discover_services';
|
||||
import { DOC_HIDE_TIME_COLUMN_SETTING, MAX_DOC_FIELDS_DISPLAYED } from '../../../../common';
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
import React from 'react';
|
||||
import { EuiIcon, EuiLoadingSpinner } from '@elastic/eui';
|
||||
import { findTestSubject, mountWithIntl } from '@kbn/test-jest-helpers';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { DocTableWrapper, DocTableWrapperProps } from './doc_table_wrapper';
|
||||
import { discoverServiceMock } from '../../__mocks__/services';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import { buildDataTableRecord } from '../../utils/build_data_record';
|
||||
import { EsHitRecord } from '../../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { DocViewer } from '../../services/doc_views/components/doc_viewer';
|
||||
|
||||
describe('Doc table component', () => {
|
||||
|
|
|
@ -12,13 +12,13 @@ import type { DataView, DataViewField } from '@kbn/data-views-plugin/public';
|
|||
import type { SortOrder } from '@kbn/saved-search-plugin/public';
|
||||
import { FormattedMessage } from '@kbn/i18n-react';
|
||||
import { Filter } from '@kbn/es-query';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { TableHeader } from './components/table_header/table_header';
|
||||
import { SHOW_MULTIFIELDS } from '../../../common';
|
||||
import { TableRow } from './components/table_row';
|
||||
import { DocViewFilterFn, DocViewRenderProps } from '../../services/doc_views/doc_views_types';
|
||||
import { getShouldShowFieldHandler } from '../../utils/get_should_show_field_handler';
|
||||
import { useDiscoverServices } from '../../hooks/use_discover_services';
|
||||
import type { DataTableRecord } from '../../types';
|
||||
|
||||
export interface DocTableProps {
|
||||
/**
|
||||
|
|
|
@ -12,7 +12,7 @@ import { DataView } from '@kbn/data-views-plugin/public';
|
|||
import { fieldFormatsMock } from '@kbn/field-formats-plugin/common/mocks';
|
||||
import { DiscoverServices } from '../../../build_services';
|
||||
import { stubbedSavedObjectIndexPattern } from '@kbn/data-plugin/common/stubs';
|
||||
import { buildDataTableRecord } from '../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
|
||||
describe('Row formatter', () => {
|
||||
let services: DiscoverServices;
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
import React, { Fragment } from 'react';
|
||||
import type { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { formatHit } from '../../../utils/format_hit';
|
||||
import type { DataTableRecord } from '../../../types';
|
||||
|
||||
import './row_formatter.scss';
|
||||
import { type ShouldShowFieldInTableHandler } from '../../../utils/get_should_show_field_handler';
|
||||
|
|
|
@ -22,7 +22,7 @@ import { SHOW_FIELD_STATISTICS } from '../../common';
|
|||
import { IUiSettingsClient } from '@kbn/core-ui-settings-browser';
|
||||
import { SavedSearchEmbeddableComponent } from './saved_search_embeddable_component';
|
||||
import { VIEW_MODE } from '../../common/constants';
|
||||
import { buildDataViewMock, deepMockedFields } from '../__mocks__/data_view';
|
||||
import { buildDataViewMock, deepMockedFields } from '@kbn/discover-utils/src/__mocks__';
|
||||
|
||||
let discoverComponent: ReactWrapper;
|
||||
|
||||
|
|
|
@ -36,10 +36,10 @@ import { KibanaContextProvider, KibanaThemeProvider } from '@kbn/kibana-react-pl
|
|||
import { SavedSearch } from '@kbn/saved-search-plugin/public';
|
||||
import { METRIC_TYPE } from '@kbn/analytics';
|
||||
import { CellActionsProvider } from '@kbn/cell-actions';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { DataTableRecord, EsHitRecord } from '@kbn/discover-utils/types';
|
||||
import { VIEW_MODE } from '../../common/constants';
|
||||
import { getSortForEmbeddable, SortPair } from '../utils/sorting';
|
||||
import { buildDataTableRecord } from '../utils/build_data_record';
|
||||
import { DataTableRecord, EsHitRecord } from '../types';
|
||||
import { ISearchEmbeddable, SearchInput, SearchOutput } from './types';
|
||||
import { SEARCH_EMBEDDABLE_TYPE, SEARCH_EMBEDDABLE_CELL_ACTIONS_TRIGGER_ID } from './constants';
|
||||
import { DiscoverServices } from '../build_services';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
import React, { useState, memo } from 'react';
|
||||
import { DataTableRecord } from '../types';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { DiscoverGrid, DiscoverGridProps } from '../components/discover_grid/discover_grid';
|
||||
import './saved_search_grid.scss';
|
||||
import { DiscoverGridFlyout } from '../components/discover_grid/discover_grid_flyout';
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
import { discoverServiceMock } from '../__mocks__/services';
|
||||
import { SearchEmbeddableFactory, type StartServices } from './search_embeddable_factory';
|
||||
import { createSearchSourceMock } from '@kbn/data-plugin/public/mocks';
|
||||
import { dataViewMock } from '../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { ErrorEmbeddable } from '@kbn/embeddable-plugin/public';
|
||||
|
||||
jest.mock('@kbn/embeddable-plugin/public', () => {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
import { createSearchSourceMock } from '@kbn/data-plugin/common/search/search_source/mocks';
|
||||
import { updateSearchSource } from './update_search_source';
|
||||
import { dataViewMock } from '../../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import type { SortOrder } from '@kbn/saved-search-plugin/public';
|
||||
|
||||
describe('updateSearchSource', () => {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
import { renderHook } from '@testing-library/react-hooks';
|
||||
import { useColumns } from './use_data_grid_columns';
|
||||
import { dataViewMock } from '../__mocks__/data_view';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { configMock } from '../__mocks__/config';
|
||||
import { dataViewsMock } from '../__mocks__/data_views';
|
||||
import { Capabilities } from '@kbn/core/types';
|
||||
|
|
|
@ -15,7 +15,7 @@ import { ElasticRequestState } from '../application/doc/types';
|
|||
import { SEARCH_FIELDS_FROM_SOURCE as mockSearchFieldsFromSource } from '../../common';
|
||||
import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public';
|
||||
import React from 'react';
|
||||
import { buildDataTableRecord } from '../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
|
||||
const index = 'test-index';
|
||||
const mockSearchResult = new Subject();
|
||||
|
|
|
@ -11,8 +11,8 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
|
|||
import { lastValueFrom } from 'rxjs';
|
||||
import { DataView } from '@kbn/data-views-plugin/public';
|
||||
import { reportPerformanceMetricEvent } from '@kbn/ebt-tools';
|
||||
import { buildDataTableRecord } from '../utils/build_data_record';
|
||||
import { DataTableRecord } from '../types';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
import type { DataTableRecord } from '@kbn/discover-utils/types';
|
||||
import { DocProps } from '../application/doc/components/doc';
|
||||
import { ElasticRequestState } from '../application/doc/types';
|
||||
import { SEARCH_FIELDS_FROM_SOURCE } from '../../common';
|
||||
|
|
|
@ -12,7 +12,7 @@ import { DocViewer } from './doc_viewer';
|
|||
import { findTestSubject } from '@elastic/eui/lib/test';
|
||||
import { getDocViewsRegistry } from '../../../../kibana_services';
|
||||
import { DocViewRenderProps } from '../../doc_views_types';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
|
||||
jest.mock('../../../../kibana_services', () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
import React from 'react';
|
||||
import { shallow } from 'enzyme';
|
||||
import { DocViewerTab } from './doc_viewer_tab';
|
||||
import { dataViewMock } from '../../../../__mocks__/data_view';
|
||||
import { buildDataTableRecord } from '../../../../utils/build_data_record';
|
||||
import { dataViewMock } from '@kbn/discover-utils/src/__mocks__';
|
||||
import { buildDataTableRecord } from '@kbn/discover-utils';
|
||||
|
||||
describe('DocViewerTab', () => {
|
||||
test('changing columns triggers an update', () => {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue