Skip to content

Commit c27422f

Browse files
Constancekibanamachine
andauthored
Add enzyme rerender test helper (#83208)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
1 parent bc2da67 commit c27422f

File tree

5 files changed

+24
-4
lines changed

5 files changed

+24
-4
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License;
4+
* you may not use this file except in compliance with the Elastic License.
5+
*/
6+
7+
import { ShallowWrapper } from 'enzyme';
8+
9+
/**
10+
* Quick and easy helper for re-rendering a React component in Enzyme
11+
* after (e.g.) updating Kea values
12+
*/
13+
export const rerender = (wrapper: ShallowWrapper) => {
14+
wrapper.setProps({}); // Re-renders
15+
wrapper.update(); // Just in case
16+
};

x-pack/plugins/enterprise_search/public/applications/__mocks__/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ export { mockAllValues, mockAllActions, setMockValues, setMockActions } from './
1515
export { mountAsync } from './mount_async.mock';
1616
export { mountWithIntl } from './mount_with_i18n.mock';
1717
export { shallowWithIntl } from './shallow_with_i18n.mock';
18+
export { rerender } from './enzyme_rerender.mock';
1819
// Note: shallow_useeffect must be imported directly as a file

x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_engine_access.test.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import { setMockValues, setMockActions } from '../../../../../__mocks__/kea.mock';
8+
import { rerender } from '../../../../../__mocks__';
89

910
import React from 'react';
1011
import { shallow } from 'enzyme';
@@ -60,7 +61,7 @@ describe('FormKeyEngineAccess', () => {
6061
...values,
6162
fullEngineAccessChecked: false,
6263
});
63-
wrapper.setProps({}); // Re-render
64+
rerender(wrapper);
6465

6566
expect(wrapper.find('#all_engines').prop('checked')).toEqual(false);
6667
expect(wrapper.find('#all_engines').prop('value')).toEqual('false');

x-pack/plugins/enterprise_search/public/applications/app_search/components/engine/engine_nav.test.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import { setMockValues } from '../../../__mocks__/kea.mock';
8+
import { rerender } from '../../../__mocks__';
89

910
import React from 'react';
1011
import { shallow } from 'enzyme';
@@ -40,11 +41,11 @@ describe('EngineNav', () => {
4041
expect(wrapper.find(EuiBadge)).toHaveLength(0);
4142

4243
setMockValues({ ...values, isSampleEngine: true });
43-
wrapper.setProps({}); // Re-render
44+
rerender(wrapper);
4445
expect(wrapper.find(EuiBadge).prop('children')).toEqual('SAMPLE ENGINE');
4546

4647
setMockValues({ ...values, isMetaEngine: true });
47-
wrapper.setProps({}); // Re-render
48+
rerender(wrapper);
4849
expect(wrapper.find(EuiBadge).prop('children')).toEqual('META ENGINE');
4950
});
5051

x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import React from 'react';
88
import { shallow } from 'enzyme';
99

1010
import { setMockValues } from '../__mocks__/kea.mock';
11+
import { rerender } from '../__mocks__';
1112

1213
import { EnterpriseSearch } from './';
1314
import { SetupGuide } from './components/setup_guide';
@@ -40,7 +41,7 @@ describe('EnterpriseSearch', () => {
4041
errorConnecting: true,
4142
config: { host: '' },
4243
});
43-
wrapper.setProps({}); // Re-render
44+
rerender(wrapper);
4445

4546
expect(wrapper.find(ErrorConnecting)).toHaveLength(0);
4647
expect(wrapper.find(ProductSelector)).toHaveLength(1);

0 commit comments

Comments
 (0)