Deprecate test utils mock component follow up (#13194)
* De-duplicate the mockComponent deprecation warning * Added fb.me link to mockComponent
Brian Vaughn committed
Jul 11, 2018 at 11:56 UTC
7b99ceabec08b8df79596d7dd1f5dd282010e959
2 files changed
+16
-6
packages/react-dom/src/__tests__/ReactTestUtils-test.js
+5
-1
@@ -57,9 +57,13 @@ describe('ReactTestUtils', () => {
57
ReactTestUtils.mockComponent(MockedComponent),
58
).toLowPriorityWarnDev(
59
'ReactTestUtils.mockComponent() is deprecated. ' +
60
- 'Use shallow rendering or jest.mock() instead.',
60
+ 'Use shallow rendering or jest.mock() instead.\n\n' +
61
+ 'See https://fb.me/test-utils-mock-component for more information.',
62
);
63
64
+ // De-duplication check
65
+ ReactTestUtils.mockComponent(MockedComponent);
66
+
67
const container = document.createElement('div');
68
ReactDOM.render(<MockedComponent>Hello</MockedComponent>, container);
69
expect(container.textContent).toBe('Hello');
packages/react-dom/src/test-utils/ReactTestUtils.js
+11
-5
@@ -33,6 +33,8 @@ const {
33
34
function Event(suffix) {}
35
36
+let hasWarnedAboutDeprecatedMockComponent = false;
37
+
38
/**
39
* @class ReactTestUtils
40
*/
@@ -310,11 +312,15 @@ const ReactTestUtils = {
312
* @return {object} the ReactTestUtils object (for chaining)
313
*/
314
mockComponent: function(module, mockTagName) {
313
- lowPriorityWarning(
314
- false,
315
- 'ReactTestUtils.mockComponent() is deprecated. ' +
316
- 'Use shallow rendering or jest.mock() instead.',
317
- );
315
+ if (!hasWarnedAboutDeprecatedMockComponent) {
316
+ hasWarnedAboutDeprecatedMockComponent = true;
317
+ lowPriorityWarning(
318
+ false,
319
+ 'ReactTestUtils.mockComponent() is deprecated. ' +
320
+ 'Use shallow rendering or jest.mock() instead.\n\n' +
321
+ 'See https://fb.me/test-utils-mock-component for more information.',
322
+ );
323
+ }
324
325
mockTagName = mockTagName || module.mockTagName || 'div';
326