mirror of
https://github.com/elastic/kibana.git
synced 2025-06-28 03:01:21 -04:00
## Summary This PR aims at relocating some of the Kibana modules (plugins and packages) into a new folder structure, according to the _Sustainable Kibana Architecture_ initiative. > [!IMPORTANT] > * We kindly ask you to: > * Manually fix the errors in the error section below (if there are any). > * Search for the `packages[\/\\]` and `plugins[\/\\]` patterns in the source code (Babel and Eslint config files), and update them appropriately. > * Manually review `.buildkite/scripts/pipelines/pull_request/pipeline.ts` to ensure that any CI pipeline customizations continue to be correctly applied after the changed path names > * Review all of the updated files, specially the `.ts` and `.js` files listed in the sections below, as some of them contain relative paths that have been updated. > * Think of potential impact of the move, including tooling and configuration files that can be pointing to the relocated modules. E.g.: > * customised eslint rules > * docs pointing to source code > [!NOTE] > * This PR has been auto-generated. > * Any manual contributions will be lost if the 'relocate' script is re-run. > * Try to obtain the missing reviews / approvals before applying manual fixes, and/or keep your changes in a .patch / git stash. > * Please use [#sustainable_kibana_architecture](https://elastic.slack.com/archives/C07TCKTA22E) Slack channel for feedback. Are you trying to rebase this PR to solve merge conflicts? Please follow the steps describe [here](https://elastic.slack.com/archives/C07TCKTA22E/p1734019532879269?thread_ts=1734019339.935419&cid=C07TCKTA22E). #### 21 plugin(s) are going to be relocated: | Id | Target folder | | -- | ------------- | | `@kbn/canvas-plugin` | `x-pack/platform/plugins/private/canvas` | | `@kbn/controls-plugin` | `src/platform/plugins/shared/controls` | | `@kbn/dashboard-enhanced-plugin` | `x-pack/platform/plugins/shared/dashboard_enhanced` | | `@kbn/dashboard-plugin` | `src/platform/plugins/shared/dashboard` | | `@kbn/embeddable-enhanced-plugin` | `x-pack/platform/plugins/shared/embeddable_enhanced` | | `@kbn/embeddable-plugin` | `src/platform/plugins/shared/embeddable` | | `@kbn/expression-error-plugin` | `src/platform/plugins/shared/expression_error` | | `@kbn/expression-image-plugin` | `src/platform/plugins/shared/expression_image` | | `@kbn/expression-metric-plugin` | `src/platform/plugins/shared/expression_metric` | | `@kbn/expression-repeat-image-plugin` | `src/platform/plugins/shared/expression_repeat_image` | | `@kbn/expression-reveal-image-plugin` | `src/platform/plugins/shared/expression_reveal_image` | | `@kbn/expression-shape-plugin` | `src/platform/plugins/shared/expression_shape` | | `@kbn/file-upload-plugin` | `x-pack/platform/plugins/private/file_upload` | | `@kbn/input-control-vis-plugin` | `src/platform/plugins/private/input_control_vis` | | `@kbn/inspector-plugin` | `src/platform/plugins/shared/inspector` | | `@kbn/links-plugin` | `src/platform/plugins/private/links` | | `@kbn/maps-ems-plugin` | `src/platform/plugins/private/maps_ems` | | `@kbn/maps-plugin` | `x-pack/platform/plugins/shared/maps` | | `@kbn/presentation-panel-plugin` | `src/platform/plugins/private/presentation_panel` | | `@kbn/presentation-util-plugin` | `src/platform/plugins/shared/presentation_util` | | `@kbn/vis-type-markdown-plugin` | `src/platform/plugins/private/vis_type_markdown` | #### 6 packages(s) are going to be relocated: | Id | Target folder | | -- | ------------- | | `@kbn/flot-charts` | `src/platform/packages/shared/kbn-flot-charts` | | `@kbn/mapbox-gl` | `src/platform/packages/private/kbn-mapbox-gl` | | `@kbn/maps-vector-tile-utils` | `x-pack/platform/packages/private/maps/vector_tile_utils` | | `@kbn/panel-loader` | `src/platform/packages/private/kbn-panel-loader` | | `@kbn/presentation-containers` | `src/platform/packages/shared/presentation/presentation_containers` | | `@kbn/presentation-publishing` | `src/platform/packages/shared/presentation/presentation_publishing` | <details > <summary>Updated references</summary> ``` ./.eslintignore ./.eslintrc.js ./.github/codeql/codeql-config.yml ./.github/paths-labeller.yml ./.i18nrc.json ./docs/developer/best-practices/index.asciidoc ./docs/developer/contributing/development-tests.asciidoc ./docs/developer/plugin-list.asciidoc ./legacy_rfcs/text/0018_timeslider.md ./package.json ./packages/kbn-cli-dev-mode/src/watcher.ts ./packages/kbn-docs-utils/src/utils.test.ts ./packages/kbn-repo-packages/package-map.json ./packages/kbn-test/src/jest/setup/polyfills.jsdom.js ./packages/kbn-ts-projects/config-paths.json ./src/dev/build/tasks/build_canvas_shareable_runtime.ts ./src/dev/build/tasks/create_archives_sources_task.ts ./src/dev/code_coverage/ingest_coverage/__tests__/mocks/team_assign_mock.txt ./src/dev/precommit_hook/casing_check_config.js ./src/dev/storybook/aliases.ts ./src/platform/packages/private/kbn-panel-loader/jest.config.js ./src/platform/packages/shared/presentation/presentation_containers/jest.config.js ./src/platform/packages/shared/presentation/presentation_publishing/jest.config.js ./src/platform/plugins/private/input_control_vis/jest.config.js ./src/platform/plugins/private/links/jest.config.js ./src/platform/plugins/private/maps_ems/jest.config.js ./src/platform/plugins/private/presentation_panel/jest.config.js ./src/platform/plugins/private/vis_type_markdown/jest.config.js ./src/platform/plugins/shared/controls/jest.config.js ./src/platform/plugins/shared/dashboard/jest.config.js ./src/platform/plugins/shared/dashboard/public/dashboard_container/component/empty_screen/__snapshots__/dashboard_empty_screen.test.tsx.snap ./src/platform/plugins/shared/embeddable/README.md ./src/platform/plugins/shared/embeddable/jest.config.js ./src/platform/plugins/shared/expression_image/jest.config.js ./src/platform/plugins/shared/expression_metric/jest.config.js ./src/platform/plugins/shared/expression_repeat_image/jest.config.js ./src/platform/plugins/shared/expression_reveal_image/jest.config.js ./src/platform/plugins/shared/expression_shape/jest.config.js ./src/platform/plugins/shared/inspector/jest.config.js ./src/platform/plugins/shared/presentation_util/jest.config.js ./src/platform/plugins/shared/presentation_util/storybook/manager.ts ./src/plugins/visualizations/public/visualize_app/utils/migrate_app_state.ts ./tsconfig.base.json ./x-pack/.i18nrc.json ./x-pack/platform/packages/private/maps/vector_tile_utils/jest.config.js ./x-pack/platform/plugins/private/canvas/jest.config.js ./x-pack/platform/plugins/private/canvas/scripts/jest.js ./x-pack/platform/plugins/private/canvas/shareable_runtime/constants.js ./x-pack/platform/plugins/private/canvas/storybook/canvas_webpack.ts ./x-pack/platform/plugins/private/file_upload/jest.config.js ./x-pack/platform/plugins/shared/dashboard_enhanced/common/drilldowns/dashboard_drilldown/constants.ts ./x-pack/platform/plugins/shared/dashboard_enhanced/jest.config.js ./x-pack/platform/plugins/shared/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/constants.ts ./x-pack/platform/plugins/shared/embeddable_enhanced/jest.config.js ./x-pack/platform/plugins/shared/maps/README.md ./x-pack/platform/plugins/shared/maps/jest.config.js ./x-pack/plugins/reporting/server/config/ui_settings.ts ./x-pack/test/api_integration/apis/maps/fonts_api.js ./yarn.lock .github/CODEOWNERS ``` </details><details > <summary>Updated relative paths</summary> ``` src/platform/packages/private/kbn-mapbox-gl/tsconfig.json:2 src/platform/packages/private/kbn-panel-loader/jest.config.js:12 src/platform/packages/private/kbn-panel-loader/tsconfig.json:2 src/platform/packages/shared/kbn-flot-charts/tsconfig.json:2 src/platform/packages/shared/presentation/presentation_containers/jest.config.js:12 src/platform/packages/shared/presentation/presentation_containers/tsconfig.json:2 src/platform/packages/shared/presentation/presentation_publishing/jest.config.js:12 src/platform/packages/shared/presentation/presentation_publishing/tsconfig.json:2 src/platform/plugins/private/input_control_vis/jest.config.js:12 src/platform/plugins/private/input_control_vis/tsconfig.json:2 src/platform/plugins/private/links/jest.config.js:12 src/platform/plugins/private/links/public/_mixins.scss:1 src/platform/plugins/private/links/tsconfig.json:2 src/platform/plugins/private/maps_ems/jest.config.js:12 src/platform/plugins/private/maps_ems/tsconfig.json:2 src/platform/plugins/private/presentation_panel/jest.config.js:12 src/platform/plugins/private/presentation_panel/tsconfig.json:2 src/platform/plugins/private/presentation_panel/tsconfig.json:6 src/platform/plugins/private/vis_type_markdown/jest.config.js:12 src/platform/plugins/private/vis_type_markdown/tsconfig.json:2 src/platform/plugins/shared/controls/jest.config.js:12 src/platform/plugins/shared/controls/tsconfig.json:12 src/platform/plugins/shared/controls/tsconfig.json:2 src/platform/plugins/shared/dashboard/jest.config.js:12 src/platform/plugins/shared/dashboard/tsconfig.json:2 src/platform/plugins/shared/embeddable/jest.config.js:12 src/platform/plugins/shared/embeddable/tsconfig.json:2 src/platform/plugins/shared/expression_error/tsconfig.json:2 src/platform/plugins/shared/expression_image/jest.config.js:12 src/platform/plugins/shared/expression_image/tsconfig.json:2 src/platform/plugins/shared/expression_metric/jest.config.js:12 src/platform/plugins/shared/expression_metric/tsconfig.json:2 src/platform/plugins/shared/expression_repeat_image/jest.config.js:12 src/platform/plugins/shared/expression_repeat_image/tsconfig.json:2 src/platform/plugins/shared/expression_reveal_image/jest.config.js:12 src/platform/plugins/shared/expression_reveal_image/tsconfig.json:2 src/platform/plugins/shared/expression_shape/jest.config.js:12 src/platform/plugins/shared/expression_shape/tsconfig.json:2 src/platform/plugins/shared/inspector/jest.config.js:12 src/platform/plugins/shared/inspector/tsconfig.json:2 src/platform/plugins/shared/presentation_util/jest.config.js:12 src/platform/plugins/shared/presentation_util/storybook/main.ts:17 src/platform/plugins/shared/presentation_util/tsconfig.json:13 src/platform/plugins/shared/presentation_util/tsconfig.json:2 x-pack/platform/packages/private/maps/vector_tile_utils/jest.config.js:10 x-pack/platform/packages/private/maps/vector_tile_utils/tsconfig.json:2 x-pack/platform/plugins/private/canvas/CONTRIBUTING.md:3 x-pack/platform/plugins/private/canvas/PLUGINS.mdx:174 x-pack/platform/plugins/private/canvas/PLUGINS.mdx:175 x-pack/platform/plugins/private/canvas/PLUGINS.mdx:63 x-pack/platform/plugins/private/canvas/PLUGINS.mdx:64 x-pack/platform/plugins/private/canvas/jest.config.js:10 x-pack/platform/plugins/private/canvas/shareable_runtime/constants.js:11 x-pack/platform/plugins/private/canvas/storybook/constants.ts:10 x-pack/platform/plugins/private/canvas/storybook/storyshots.skipped_test.tsx:86 x-pack/platform/plugins/private/canvas/tsconfig.json:16 x-pack/platform/plugins/private/canvas/tsconfig.json:2 x-pack/platform/plugins/private/canvas/tsconfig.json:29 x-pack/platform/plugins/private/file_upload/jest.config.js:10 x-pack/platform/plugins/private/file_upload/tsconfig.json:2 x-pack/platform/plugins/shared/dashboard_enhanced/jest.config.js:10 x-pack/platform/plugins/shared/dashboard_enhanced/tsconfig.json:2 x-pack/platform/plugins/shared/embeddable_enhanced/jest.config.js:10 x-pack/platform/plugins/shared/embeddable_enhanced/tsconfig.json:2 x-pack/platform/plugins/shared/maps/jest.config.js:10 x-pack/platform/plugins/shared/maps/public/_main.scss:1 x-pack/platform/plugins/shared/maps/tsconfig.json:12 x-pack/platform/plugins/shared/maps/tsconfig.json:2 ``` </details> --------- Co-authored-by: Nick Peihl <nick.peihl@elastic.co> Co-authored-by: Michael Dokolin <mikhail.dokolin@elastic.co>
119 lines
No EOL
4.4 KiB
Text
119 lines
No EOL
4.4 KiB
Text
[[development-tests]]
|
|
== Testing
|
|
|
|
[discrete]
|
|
=== Running specific {kib} tests
|
|
|
|
The following table outlines possible test file locations and how to
|
|
invoke them:
|
|
|
|
[width="100%",cols="7%,59%,34%",options="header",]
|
|
|===
|
|
|Test runner |Test location |Runner command (working directory is {kib}
|
|
root)
|
|
|Jest |`**/*.test.{js,mjs,ts,tsx}`
|
|
|`yarn test:jest [test path]`
|
|
|
|
|Jest (integration) |`**/integration_tests/**/*.test.{js,mjs,ts,tsx}`
|
|
|`yarn test:jest_integration [test path]`
|
|
|
|
|Functional
|
|
|`test/**/config.js` `x-pack/test/**/config.js`
|
|
|`node scripts/functional_tests_server --config [directory]/config.js` `node scripts/functional_test_runner --config [directory]/config.js --grep=regexp`
|
|
|===
|
|
|
|
Test runner arguments: - Where applicable, the optional arguments
|
|
`--grep=regexp` will only run tests or test suites
|
|
whose descriptions matches the regular expression. - `[test path]` is
|
|
the relative path to the test file.
|
|
|
|
=== Unit Testing
|
|
|
|
Kibana primarily uses Jest for unit testing. Each plugin or package defines a `jest.config.js` that extends link:{kib-repo}tree/{branch}/packages/kbn-test/jest-preset.js[a preset] provided by the link:{kib-repo}tree/{branch}/packages/kbn-test[`@kbn/test`] package. Unless you intend to run all unit tests within the project, it's most efficient to provide the Jest configuration file for the plugin or package you're testing.
|
|
|
|
[source,bash]
|
|
----
|
|
yarn jest --config src/platform/plugins/shared/dashboard/jest.config.js
|
|
----
|
|
|
|
A script is available to provide a better user experience when testing while navigating throughout the repository. To run the tests within your current working directory, use `yarn test:jest`. Like the Jest CLI, you can also supply a path to determine which tests to run.
|
|
|
|
[source,bash]
|
|
----
|
|
kibana/src/platform/plugins/shared/dashboard/server$ yarn test:jest #or
|
|
kibana/src/platform/plugins/shared/dashboard$ yarn test:jest server #or
|
|
kibana$ yarn test:jest src/platform/plugins/shared/dashboard/server
|
|
----
|
|
|
|
Any additional options supplied to `test:jest` will be passed onto the Jest CLI with the resulting Jest command always being outputted.
|
|
|
|
[source,bash]
|
|
----
|
|
kibana/src/platform/plugins/shared/dashboard/server$ yarn test:jest --coverage
|
|
|
|
# is equivalent to
|
|
|
|
yarn jest --coverage --verbose --config /home/tyler/elastic/kibana/src/platform/plugins/shared/dashboard/jest.config.js server
|
|
----
|
|
|
|
You can generate code coverage report for a single plugin.
|
|
|
|
[source,bash]
|
|
----
|
|
yarn jest --coverage --config src/platform/plugins/shared/console/jest.config.js
|
|
----
|
|
|
|
Html report is available in target/kibana-coverage/jest/path/to/plugin
|
|
|
|
[discrete]
|
|
=== Running browser automation tests
|
|
|
|
Check out <<development-functional-tests>> to learn more about how you can run
|
|
and develop functional tests for {kib} core and plugins.
|
|
|
|
You can also look into the {kib-repo}tree/{branch}/scripts/README.md[Scripts README.md]
|
|
to learn more about using the node scripts we provide for building
|
|
{kib}, running integration tests, and starting up {kib} and
|
|
{es} while you develop.
|
|
|
|
[discrete]
|
|
==== More testing information:
|
|
|
|
* <<development-functional-tests>>
|
|
* <<development-unit-tests>>
|
|
* <<development-accessibility-tests>>
|
|
* <<development-package-tests>>
|
|
|
|
include::development-functional-tests.asciidoc[leveloffset=+1]
|
|
|
|
include::development-unit-tests.asciidoc[leveloffset=+1]
|
|
|
|
include::development-accessibility-tests.asciidoc[leveloffset=+1]
|
|
|
|
include::development-package-tests.asciidoc[leveloffset=+1]
|
|
|
|
[discrete]
|
|
=== Cross-browser compatibility
|
|
|
|
**Testing IE on OS X**
|
|
|
|
**Note:** IE11 is not supported from 7.9 onwards.
|
|
|
|
* http://www.vmware.com/products/fusion/fusion-evaluation.html[Download
|
|
VMWare Fusion].
|
|
* https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/#downloads[Download
|
|
IE virtual machines] for VMWare.
|
|
* Open VMWare and go to Window > Virtual Machine Library. Unzip the
|
|
virtual machine and drag the .vmx file into your Virtual Machine
|
|
Library.
|
|
* Right-click on the virtual machine you just added to your library and
|
|
select "`Snapshots…`", and then click the "`Take`" button in the modal
|
|
that opens. You can roll back to this snapshot when the VM expires in 90
|
|
days.
|
|
* In System Preferences > Sharing, change your computer name to be
|
|
something simple, e.g. "`computer`".
|
|
* Run {kib} with `yarn start --host=computer.local` (substituting
|
|
your computer name).
|
|
* Now you can run your VM, open the browser, and navigate to
|
|
`http://computer.local:5601` to test {kib}.
|
|
* Alternatively you can use browserstack |