From cf68b96413f57fc7fb6b481aeda21df00d258682 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Wed, 28 Nov 2018 17:25:31 +0000 Subject: [PATCH] Test should be agnostic of where resolving happens That's an implementation detail and we might want to change it later. Let's keep it easy by making tests just check that validation happened, not at which stage. --- .../src/__tests__/ReactLazy-test.internal.js | 20 ++++++++--------- .../src/__tests__/ReactMemo-test.internal.js | 22 +++++-------------- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js b/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js index 6efd405aba..bc0fdf1293 100644 --- a/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js @@ -619,12 +619,12 @@ describe('ReactLazy', () => { expect(root).toMatchRenderedOutput('22'); // Update - root.update( - }> - - , - ); expect(() => { + root.update( + }> + + , + ); root.unstable_flushAll(); }).toWarnDev( 'Invalid prop `inner` of type `boolean` supplied to `Add`, expected `number`.', @@ -804,12 +804,12 @@ describe('ReactLazy', () => { expect(root).toMatchRenderedOutput('Inner default text'); // Update - root.update( - }> - - , - ); expect(() => { + root.update( + }> + + , + ); root.unstable_flushAll(); }).toWarnDev( 'The prop `text` is marked as required in `T`, but its value is `null`', diff --git a/packages/react-reconciler/src/__tests__/ReactMemo-test.internal.js b/packages/react-reconciler/src/__tests__/ReactMemo-test.internal.js index dbbe0683d0..046dd395a4 100644 --- a/packages/react-reconciler/src/__tests__/ReactMemo-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactMemo-test.internal.js @@ -332,16 +332,16 @@ describe('memo', () => { const Fn = React.memo(FnInner); // Mount - ReactNoop.render(); expect(() => { + ReactNoop.render(); ReactNoop.flush(); }).toWarnDev( 'Invalid prop `inner` of type `string` supplied to `FnInner`, expected `number`.', ); // Update - ReactNoop.render(); expect(() => { + ReactNoop.render(); ReactNoop.flush(); }).toWarnDev( 'Invalid prop `inner` of type `boolean` supplied to `FnInner`, expected `number`.', @@ -358,20 +358,20 @@ describe('memo', () => { // Mount expect(() => { ReactNoop.render(); + ReactNoop.flush(); }).toWarnDev( // Outer props are checked in createElement 'Invalid prop `outer` of type `string` supplied to `FnInner`, expected `number`.', ); - ReactNoop.flush(); // Update expect(() => { ReactNoop.render(); + ReactNoop.flush(); }).toWarnDev( // Outer props are checked in createElement 'Invalid prop `outer` of type `boolean` supplied to `FnInner`, expected `number`.', ); - ReactNoop.flush(); }); it('validates nested propTypes declarations', () => { @@ -394,14 +394,9 @@ describe('memo', () => { // Mount expect(() => { ReactNoop.render(); - }).toWarnDev( - // Outer props are checked in createElement - 'Invalid prop `outer` of type `string` supplied to `Inner`, expected `number`.', - ); - expect(() => { ReactNoop.flush(); }).toWarnDev([ - // There are no actual elements created for these, so they're checked in reconciler. + 'Invalid prop `outer` of type `string` supplied to `Inner`, expected `number`.', 'Invalid prop `middle` of type `string` supplied to `Inner`, expected `number`.', 'Invalid prop `inner` of type `string` supplied to `Inner`, expected `number`.', ]); @@ -411,14 +406,9 @@ describe('memo', () => { ReactNoop.render( , ); - }).toWarnDev( - // Outer props are checked in createElement - 'Invalid prop `outer` of type `boolean` supplied to `Inner`, expected `number`.', - ); - expect(() => { ReactNoop.flush(); }).toWarnDev([ - // There are no actual elements created for these, so they're checked in reconciler. + 'Invalid prop `outer` of type `boolean` supplied to `Inner`, expected `number`.', 'Invalid prop `middle` of type `boolean` supplied to `Inner`, expected `number`.', 'Invalid prop `inner` of type `boolean` supplied to `Inner`, expected `number`.', ]);