@samitouri / QOS-React-2 / commits / 144dba1a11

Fix suspenseCallback type warning, add a test (#16194)

Benoit Girard committed Jul 24, 2019 at 10:32 UTC 144dba1a114f2d8b491186639aa38ece82eaef26
2 files changed +27 -1
packages/react-reconciler/src/ReactFiberCommitWork.js
+3 -1
@@ -1330,7 +1330,9 @@ function commitSuspenseComponent(finishedWork: Fiber) {
1330 suspenseCallback(new Set(thenables));
1331 }
1332 } else if (__DEV__) {
1333 - warning(false, 'Unexpected type for suspenseCallback.');
1333 + if (suspenseCallback !== undefined) {
1334 + warning(false, 'Unexpected type for suspenseCallback.');
1335 + }
1336 }
1337 }
1338 }
packages/react-reconciler/src/__tests__/ReactSuspenseCallback-test.internal.js
+24
@@ -50,6 +50,30 @@ describe('ReactSuspense', () => {
50 return {promise, resolveRef, PromiseComp};
51 }
52
53 + it('check type', () => {
54 + const {PromiseComp} = createThenable();
55 +
56 + const elementBadType = (
57 + <React.Suspense suspenseCallback={1} fallback={'Waiting'}>
58 + <PromiseComp />
59 + </React.Suspense>
60 + );
61 +
62 + ReactNoop.render(elementBadType);
63 + expect(() => Scheduler.unstable_flushAll()).toWarnDev([
64 + 'Warning: Unexpected type for suspenseCallback.',
65 + ]);
66 +
67 + const elementMissingCallback = (
68 + <React.Suspense fallback={'Waiting'}>
69 + <PromiseComp />
70 + </React.Suspense>
71 + );
72 +
73 + ReactNoop.render(elementMissingCallback);
74 + expect(() => Scheduler.unstable_flushAll()).toWarnDev([]);
75 + });
76 +
77 it('1 then 0 suspense callback', () => {
78 const {promise, resolveRef, PromiseComp} = createThenable();
79