diff --git a/packages/react-dom/src/__tests__/ReactTestUtils-test.js b/packages/react-dom/src/__tests__/ReactTestUtils-test.js index 4db78d8c11825..34bb16cb37b29 100644 --- a/packages/react-dom/src/__tests__/ReactTestUtils-test.js +++ b/packages/react-dom/src/__tests__/ReactTestUtils-test.js @@ -57,9 +57,13 @@ describe('ReactTestUtils', () => { ReactTestUtils.mockComponent(MockedComponent), ).toLowPriorityWarnDev( 'ReactTestUtils.mockComponent() is deprecated. ' + - 'Use shallow rendering or jest.mock() instead.', + 'Use shallow rendering or jest.mock() instead.\n\n' + + 'See https://fb.me/test-utils-mock-component for more information.', ); + // De-duplication check + ReactTestUtils.mockComponent(MockedComponent); + const container = document.createElement('div'); ReactDOM.render(Hello, container); expect(container.textContent).toBe('Hello'); diff --git a/packages/react-dom/src/test-utils/ReactTestUtils.js b/packages/react-dom/src/test-utils/ReactTestUtils.js index aba82ddc97d27..1e5c81e468884 100644 --- a/packages/react-dom/src/test-utils/ReactTestUtils.js +++ b/packages/react-dom/src/test-utils/ReactTestUtils.js @@ -33,6 +33,8 @@ const { function Event(suffix) {} +let hasWarnedAboutDeprecatedMockComponent = false; + /** * @class ReactTestUtils */ @@ -310,11 +312,15 @@ const ReactTestUtils = { * @return {object} the ReactTestUtils object (for chaining) */ mockComponent: function(module, mockTagName) { - lowPriorityWarning( - false, - 'ReactTestUtils.mockComponent() is deprecated. ' + - 'Use shallow rendering or jest.mock() instead.', - ); + if (!hasWarnedAboutDeprecatedMockComponent) { + hasWarnedAboutDeprecatedMockComponent = true; + lowPriorityWarning( + false, + 'ReactTestUtils.mockComponent() is deprecated. ' + + 'Use shallow rendering or jest.mock() instead.\n\n' + + 'See https://fb.me/test-utils-mock-component for more information.', + ); + } mockTagName = mockTagName || module.mockTagName || 'div';