@samitouri / QOS-React / commits / 7b99ceabec

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