From 27103bd4a5afbb7fe98e4142bf37b1a87870c6c6 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Fri, 17 Jan 2020 16:28:38 -0600 Subject: [PATCH] [SIEM] Fix mocks for kibana context (#54996) * Use our internal uiSettings mock in all context mocks We were previously only using our internal uiSettings mock (which returns real values) in our TestProviders component, as all tests either needed: * specific mocks, in which case we'd call jest.mock() ourselves * broad mocks, for which platform's kibana_react mocks were usually sufficient However, a recent addition in the Timeline component added a usage of uiSettings that could not use the default mock. With this change, one can either jest.mock('lib/kibana') or use the TestProviders wrapper to get real values for UI settings in test. * Remove production code guarding against tests This coalescence was due to the service not being properly mocked in test, which is now fixed. --- .../siem/public/containers/timeline/index.tsx | 3 +-- .../plugins/siem/public/mock/kibana_react.ts | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/x-pack/legacy/plugins/siem/public/containers/timeline/index.tsx b/x-pack/legacy/plugins/siem/public/containers/timeline/index.tsx index c585e04d2cfd..97f007452854 100644 --- a/x-pack/legacy/plugins/siem/public/containers/timeline/index.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/timeline/index.tsx @@ -81,8 +81,7 @@ class TimelineQueryComponent extends QueryTemplate< sourceId, sortField, } = this.props; - // I needed to do that to avoid test to yell at me since there is no good way yet to mock withKibana - const defaultKibanaIndex = kibana.services.uiSettings.get(DEFAULT_INDEX_KEY) ?? []; + const defaultKibanaIndex = kibana.services.uiSettings.get(DEFAULT_INDEX_KEY); const defaultIndex = isEmpty(indexPattern) ? [...defaultKibanaIndex, ...indexToAdd] : indexPattern?.title.split(',') ?? []; diff --git a/x-pack/legacy/plugins/siem/public/mock/kibana_react.ts b/x-pack/legacy/plugins/siem/public/mock/kibana_react.ts index 7d843977d1f3..968ab6543f4f 100644 --- a/x-pack/legacy/plugins/siem/public/mock/kibana_react.ts +++ b/x-pack/legacy/plugins/siem/public/mock/kibana_react.ts @@ -71,7 +71,18 @@ export const createUseUiSetting$Mock = () => { }; export const createUseKibanaMock = () => { - const services = { ...createKibanaCoreStartMock(), ...createKibanaPluginsStartMock() }; + const core = createKibanaCoreStartMock(); + const plugins = createKibanaPluginsStartMock(); + const useUiSetting = createUseUiSettingMock(); + + const services = { + ...core, + ...plugins, + uiSettings: { + ...core.uiSettings, + get: useUiSetting, + }, + }; return () => ({ services }); }; @@ -87,15 +98,11 @@ export const createWithKibanaMock = () => { export const createKibanaContextProviderMock = () => { const kibana = createUseKibanaMock()(); - const uiSettings = { - ...kibana.services.uiSettings, - get: createUseUiSettingMock(), - }; // eslint-disable-next-line @typescript-eslint/no-explicit-any return ({ services, ...rest }: any) => React.createElement(KibanaContextProvider, { ...rest, - services: { ...kibana.services, uiSettings, ...services }, + services: { ...kibana.services, ...services }, }); };