[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.
This commit is contained in:
Ryland Herrick 2020-01-17 16:28:38 -06:00 committed by GitHub
parent 92c4604b5d
commit 27103bd4a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 8 deletions

View file

@ -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<string[]>(DEFAULT_INDEX_KEY) ?? [];
const defaultKibanaIndex = kibana.services.uiSettings.get<string[]>(DEFAULT_INDEX_KEY);
const defaultIndex = isEmpty(indexPattern)
? [...defaultKibanaIndex, ...indexToAdd]
: indexPattern?.title.split(',') ?? [];

View file

@ -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 },
});
};