From 7b99ceabec08b8df79596d7dd1f5dd282010e959 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Wed, 11 Jul 2018 11:56:44 -0700 Subject: [PATCH] Deprecate test utils mock component follow up (#13194) * De-duplicate the mockComponent deprecation warning * Added fb.me link to mockComponent --- .../src/__tests__/ReactTestUtils-test.js | 6 +++++- .../react-dom/src/test-utils/ReactTestUtils.js | 16 +++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/react-dom/src/__tests__/ReactTestUtils-test.js b/packages/react-dom/src/__tests__/ReactTestUtils-test.js index 4db78d8c11..34bb16cb37 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 aba82ddc97..1e5c81e468 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';