mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
Add stable concurrent option to react-test-renderer (#27804)
## Summary
Concurrent rendering has been the default since React 18 release.
ReactTestRenderer requires passing `{unstable_isConcurrent: true}` to
match this behavior, which means by default tests written with RTR use a
different rendering method than the code they test.
Eventually, RTR should only use ConcurrentRoot. As a first step, let's
add a version of the concurrent option that isn't marked unstable. Next
we will follow up with removing the unstable option when it is safe to
merge.
## How did you test this change?
`yarn test
packages/react-test-renderer/src/__tests__/ReactTestRendererAsync-test.js`
This commit is contained in:
@@ -121,7 +121,7 @@ describe('ReactCache', () => {
|
||||
}
|
||||
|
||||
ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Suspend! [Hi]', 'Loading...']);
|
||||
@@ -141,7 +141,7 @@ describe('ReactCache', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Suspend! [Hi]', 'Loading...']);
|
||||
@@ -181,7 +181,7 @@ describe('ReactCache', () => {
|
||||
<App />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -210,7 +210,7 @@ describe('ReactCache', () => {
|
||||
<AsyncText ms={100} text={3} />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Suspend! [1]', 'Loading...']);
|
||||
@@ -298,7 +298,7 @@ describe('ReactCache', () => {
|
||||
<App />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -356,7 +356,7 @@ describe('ReactCache', () => {
|
||||
<BadAsyncText text="Hi" />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -372,7 +372,7 @@ describe('ReactCache', () => {
|
||||
<BadAsyncText text="Hi" />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ describe('React hooks DevTools integration', () => {
|
||||
<MyComponent />
|
||||
</React.Suspense>
|
||||
</div>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ describe('InspectedElement', () => {
|
||||
// Used by inspectElementAtIndex() helper function
|
||||
utils.act(() => {
|
||||
testRendererInstance = TestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -307,7 +307,7 @@ describe('InspectedElement', () => {
|
||||
['An update to %s inside a test was not wrapped in act'],
|
||||
() => {
|
||||
testRendererInstance = TestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
},
|
||||
);
|
||||
@@ -469,7 +469,7 @@ describe('InspectedElement', () => {
|
||||
['An update to %s inside a test was not wrapped in act'],
|
||||
() => {
|
||||
testRendererInstance = TestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
},
|
||||
);
|
||||
@@ -2034,7 +2034,7 @@ describe('InspectedElement', () => {
|
||||
['An update to %s inside a test was not wrapped in act'],
|
||||
() => {
|
||||
testRendererInstance = TestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
},
|
||||
);
|
||||
@@ -2317,7 +2317,7 @@ describe('InspectedElement', () => {
|
||||
<Suspender target={id} />
|
||||
</React.Suspense>
|
||||
</Contexts>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
}, false);
|
||||
await utils.actAsync(() => {
|
||||
@@ -2817,7 +2817,7 @@ describe('InspectedElement', () => {
|
||||
['An update to %s inside a test was not wrapped in act'],
|
||||
() => {
|
||||
testRendererInstance = TestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
@@ -67,7 +67,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<div />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
expect(logs).toEqual([]);
|
||||
@@ -179,7 +179,7 @@ describe('DebugTracing', () => {
|
||||
<Example />
|
||||
</React.Suspense>
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -216,7 +216,7 @@ describe('DebugTracing', () => {
|
||||
</React.Suspense>
|
||||
</Wrapper>
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -247,7 +247,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<Example />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -278,7 +278,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<Example />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
}).toErrorDev('Cannot update during an existing state transition');
|
||||
@@ -305,7 +305,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<Example />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
|
||||
@@ -333,7 +333,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<Example />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
expect(logs).toEqual([
|
||||
@@ -358,7 +358,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<Example />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -381,7 +381,7 @@ describe('DebugTracing', () => {
|
||||
<React.unstable_DebugTracingMode>
|
||||
<Example />
|
||||
</React.unstable_DebugTracingMode>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ describe('ErrorBoundaryReconciliation', () => {
|
||||
<ErrorBoundary fallbackTagName={fallbackTagName}>
|
||||
<BrokenRender fail={false} />
|
||||
</ErrorBoundary>,
|
||||
{unstable_isConcurrent: isConcurrent},
|
||||
{isConcurrent: isConcurrent},
|
||||
);
|
||||
});
|
||||
expect(renderer).toMatchRenderedOutput(<span prop="BrokenRender" />);
|
||||
|
||||
@@ -86,7 +86,7 @@ describe('ReactHooks', () => {
|
||||
return <Child text={text} />;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Parent />);
|
||||
await waitForAll(['Parent: 0, 0', 'Child: 0, 0', 'Effect: 0, 0']);
|
||||
expect(root).toMatchRenderedOutput('0, 0');
|
||||
@@ -174,7 +174,7 @@ describe('ReactHooks', () => {
|
||||
|
||||
Parent = memo(Parent);
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Parent theme="light" />);
|
||||
await waitForAll(['Parent: 0, 0 (light)', 'Child: 0, 0 (light)']);
|
||||
expect(root).toMatchRenderedOutput('0, 0 (light)');
|
||||
@@ -232,7 +232,7 @@ describe('ReactHooks', () => {
|
||||
return counter;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Counter />);
|
||||
await waitForAll(['Count: 0']);
|
||||
expect(root).toMatchRenderedOutput('0');
|
||||
@@ -266,7 +266,7 @@ describe('ReactHooks', () => {
|
||||
return counter;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Counter />);
|
||||
await waitForAll(['Count: 0']);
|
||||
expect(root).toMatchRenderedOutput('0');
|
||||
@@ -322,7 +322,7 @@ describe('ReactHooks', () => {
|
||||
});
|
||||
return <Child text={text} />;
|
||||
}
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
await act(() => {
|
||||
root.update(
|
||||
<ThemeProvider>
|
||||
@@ -390,7 +390,7 @@ describe('ReactHooks', () => {
|
||||
return <Child text={counter} />;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Parent />);
|
||||
await waitForAll(['Parent: 0', 'Child: 0', 'Effect: 0']);
|
||||
expect(root).toMatchRenderedOutput('0');
|
||||
@@ -465,7 +465,7 @@ describe('ReactHooks', () => {
|
||||
return <Child text={counter} />;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Parent />);
|
||||
await waitForAll(['Parent: 0', 'Child: 0']);
|
||||
expect(root).toMatchRenderedOutput('0');
|
||||
@@ -523,7 +523,7 @@ describe('ReactHooks', () => {
|
||||
return <Child text={counter} />;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
root.update(<Parent />);
|
||||
await waitForAll(['Parent: 1', 'Child: 1']);
|
||||
expect(root).toMatchRenderedOutput('1');
|
||||
|
||||
@@ -99,7 +99,7 @@ describe('ReactLazy', () => {
|
||||
<LazyText text="Hi" />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -185,7 +185,7 @@ describe('ReactLazy', () => {
|
||||
<LazyBar />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -208,7 +208,7 @@ describe('ReactLazy', () => {
|
||||
const LazyText = lazy(async () => Text);
|
||||
|
||||
const root = ReactTestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
let error;
|
||||
@@ -242,7 +242,7 @@ describe('ReactLazy', () => {
|
||||
});
|
||||
|
||||
const root = ReactTestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
let error;
|
||||
@@ -302,7 +302,7 @@ describe('ReactLazy', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Parent swap={false} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Suspend! [LazyChildA]', 'Loading...']);
|
||||
@@ -337,7 +337,7 @@ describe('ReactLazy', () => {
|
||||
<LazyText />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -394,7 +394,7 @@ describe('ReactLazy', () => {
|
||||
</Lazy>
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Loading...']);
|
||||
@@ -440,7 +440,7 @@ describe('ReactLazy', () => {
|
||||
</Suspense>
|
||||
</>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Not lazy: 0', 'Loading...']);
|
||||
@@ -485,7 +485,7 @@ describe('ReactLazy', () => {
|
||||
</Suspense>
|
||||
</>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Not lazy: 0', 'Loading...']);
|
||||
@@ -561,7 +561,7 @@ describe('ReactLazy', () => {
|
||||
<LazyClass num={1} />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -691,7 +691,7 @@ describe('ReactLazy', () => {
|
||||
<LazyText />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -734,7 +734,7 @@ describe('ReactLazy', () => {
|
||||
<BadLazy />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -761,7 +761,7 @@ describe('ReactLazy', () => {
|
||||
<Lazy2 text="Hello" />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -815,7 +815,7 @@ describe('ReactLazy', () => {
|
||||
<LazyAdd inner="2" outer="2" />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1012,7 +1012,7 @@ describe('ReactLazy', () => {
|
||||
<LazyText />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1055,7 +1055,7 @@ describe('ReactLazy', () => {
|
||||
<LazyFoo />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1100,7 +1100,7 @@ describe('ReactLazy', () => {
|
||||
<LazyForwardRef ref={ref} />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1131,7 +1131,7 @@ describe('ReactLazy', () => {
|
||||
<LazyAdd outer={2} />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Loading...']);
|
||||
@@ -1218,7 +1218,7 @@ describe('ReactLazy', () => {
|
||||
<LazyAdd outer={2} />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Loading...']);
|
||||
@@ -1264,7 +1264,7 @@ describe('ReactLazy', () => {
|
||||
<LazyFoo ref={ref} />
|
||||
</Suspense>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1304,7 +1304,7 @@ describe('ReactLazy', () => {
|
||||
<LazyText text="Hi" />
|
||||
</Suspense>
|
||||
</ErrorBoundary>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
|
||||
await waitForAll(['Loading...']);
|
||||
@@ -1412,7 +1412,7 @@ describe('ReactLazy', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Parent swap={false} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Init A', 'Loading...']);
|
||||
@@ -1497,7 +1497,7 @@ describe('ReactLazy', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Parent swap={false} />, {
|
||||
unstable_isConcurrent: false,
|
||||
isConcurrent: false,
|
||||
});
|
||||
|
||||
assertLog(['Init A', 'Init B', 'Loading...']);
|
||||
@@ -1559,7 +1559,7 @@ describe('ReactLazy', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Parent swap={false} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Init A', 'Loading...']);
|
||||
@@ -1628,7 +1628,7 @@ describe('ReactLazy', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Parent swap={false} />, {
|
||||
unstable_isConcurrent: false,
|
||||
isConcurrent: false,
|
||||
});
|
||||
|
||||
assertLog(['Init A', 'Loading...']);
|
||||
|
||||
@@ -117,7 +117,7 @@ describe('ReactSuspense', () => {
|
||||
|
||||
// Render an empty shell
|
||||
const root = ReactTestRenderer.create(<Foo />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Foo']);
|
||||
@@ -158,7 +158,7 @@ describe('ReactSuspense', () => {
|
||||
</Suspense>
|
||||
</>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -217,7 +217,7 @@ describe('ReactSuspense', () => {
|
||||
<Text text="Initial" />
|
||||
</>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Initial']);
|
||||
@@ -268,7 +268,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Foo />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Foo', 'Suspend! [A]', 'Loading...']);
|
||||
@@ -303,7 +303,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<Foo />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Foo', 'Suspend! [A]', 'Loading...']);
|
||||
@@ -353,7 +353,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
root.update(<App shouldSuspend={false} step={0} />);
|
||||
@@ -456,7 +456,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
await waitForAll(['Suspend! [default]', 'Loading...']);
|
||||
|
||||
@@ -502,7 +502,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
await waitForAll(['Suspend! [default]', 'Loading...']);
|
||||
|
||||
@@ -545,7 +545,7 @@ describe('ReactSuspense', () => {
|
||||
</Suspense>
|
||||
</App>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Suspend! [default]', 'Loading...']);
|
||||
@@ -589,7 +589,7 @@ describe('ReactSuspense', () => {
|
||||
</Suspense>
|
||||
</App>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
await waitForAll(['Suspend! [default]', 'Loading...']);
|
||||
@@ -631,7 +631,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Child 1', 'create layout']);
|
||||
@@ -899,7 +899,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
// Initial render
|
||||
@@ -990,7 +990,7 @@ describe('ReactSuspense', () => {
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(<App />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['Suspend! [Child 1]', 'Loading...']);
|
||||
|
||||
@@ -76,7 +76,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -129,7 +129,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -182,7 +182,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -233,7 +233,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -286,7 +286,7 @@ describe('StrictEffectsMode', () => {
|
||||
}
|
||||
|
||||
await act(() => {
|
||||
ReactTestRenderer.create(<App />, {unstable_isConcurrent: true});
|
||||
ReactTestRenderer.create(<App />, {isConcurrent: true});
|
||||
});
|
||||
|
||||
if (supportsDoubleInvokeEffects()) {
|
||||
@@ -322,7 +322,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -367,7 +367,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -438,7 +438,7 @@ describe('StrictEffectsMode', () => {
|
||||
|
||||
await act(() => {
|
||||
ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -502,7 +502,7 @@ describe('StrictEffectsMode', () => {
|
||||
}
|
||||
|
||||
await act(() => {
|
||||
ReactTestRenderer.create(<App />, {unstable_isConcurrent: true});
|
||||
ReactTestRenderer.create(<App />, {isConcurrent: true});
|
||||
});
|
||||
|
||||
if (supportsDoubleInvokeEffects()) {
|
||||
@@ -586,7 +586,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -667,7 +667,7 @@ describe('StrictEffectsMode', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<App text={'mount'} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ const act = React.unstable_act;
|
||||
|
||||
type TestRendererOptions = {
|
||||
createNodeMock: (element: React$Element<any>) => any,
|
||||
isConcurrent: boolean,
|
||||
unstable_isConcurrent: boolean,
|
||||
unstable_strictMode: boolean,
|
||||
unstable_concurrentUpdatesByDefault: boolean,
|
||||
@@ -479,7 +480,10 @@ function create(
|
||||
// $FlowFixMe[incompatible-type] found when upgrading Flow
|
||||
createNodeMock = options.createNodeMock;
|
||||
}
|
||||
if (options.unstable_isConcurrent === true) {
|
||||
if (
|
||||
options.unstable_isConcurrent === true ||
|
||||
options.isConcurrent === true
|
||||
) {
|
||||
isConcurrent = true;
|
||||
}
|
||||
if (options.unstable_strictMode === true) {
|
||||
|
||||
@@ -34,7 +34,7 @@ describe('ReactTestRendererAsync', () => {
|
||||
return props.children;
|
||||
}
|
||||
const renderer = ReactTestRenderer.create(<Foo>Hi</Foo>, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
// Before flushing, nothing has mounted.
|
||||
@@ -68,7 +68,7 @@ describe('ReactTestRendererAsync', () => {
|
||||
);
|
||||
}
|
||||
const renderer = ReactTestRenderer.create(<Parent step={1} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
|
||||
await waitForAll(['A:1', 'B:1', 'C:1']);
|
||||
@@ -97,7 +97,7 @@ describe('ReactTestRendererAsync', () => {
|
||||
let renderer;
|
||||
React.startTransition(() => {
|
||||
renderer = ReactTestRenderer.create(<Parent step={1} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -137,7 +137,7 @@ describe('ReactTestRendererAsync', () => {
|
||||
let renderer;
|
||||
React.startTransition(() => {
|
||||
renderer = ReactTestRenderer.create(<Example step={1} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ describe(`onRender`, () => {
|
||||
<Yield value="last" />
|
||||
</React.Profiler>,
|
||||
{
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -752,7 +752,7 @@ describe(`onRender`, () => {
|
||||
<Yield renderTime={2} />
|
||||
<Yield renderTime={3} />
|
||||
</React.Profiler>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -793,7 +793,7 @@ describe(`onRender`, () => {
|
||||
<Yield renderTime={17} />
|
||||
</React.Profiler>
|
||||
</React.Profiler>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -844,7 +844,7 @@ describe(`onRender`, () => {
|
||||
<Yield renderTime={10} />
|
||||
<Yield renderTime={20} />
|
||||
</React.Profiler>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -897,7 +897,7 @@ describe(`onRender`, () => {
|
||||
<Yield renderTime={6} />
|
||||
<Yield renderTime={15} />
|
||||
</React.Profiler>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
|
||||
// Render everything initially.
|
||||
@@ -1002,7 +1002,7 @@ describe(`onRender`, () => {
|
||||
<FirstComponent />
|
||||
<SecondComponent />
|
||||
</React.Profiler>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
|
||||
// Render everything initially.
|
||||
|
||||
@@ -150,7 +150,7 @@ describe('ReactProfiler DevTools integration', () => {
|
||||
return text;
|
||||
}
|
||||
|
||||
const root = ReactTestRenderer.create(null, {unstable_isConcurrent: true});
|
||||
const root = ReactTestRenderer.create(null, {isConcurrent: true});
|
||||
|
||||
// Commit something
|
||||
root.update(<Text text="A" />);
|
||||
|
||||
@@ -49,7 +49,7 @@ describe('ReactStartTransition', () => {
|
||||
|
||||
await act(() => {
|
||||
ReactTestRenderer.create(<Component level={0} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ describe('useSubscription', () => {
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(
|
||||
<Subscription source={observable} />,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
assertLog(['default']);
|
||||
@@ -136,7 +136,7 @@ describe('useSubscription', () => {
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(
|
||||
<Subscription source={observable} />,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
assertLog(['initial']);
|
||||
@@ -185,7 +185,7 @@ describe('useSubscription', () => {
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(
|
||||
<Subscription source={observableA} />,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -244,7 +244,7 @@ describe('useSubscription', () => {
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(
|
||||
<Subscription source={observableA} />,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
|
||||
@@ -331,7 +331,7 @@ describe('useSubscription', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<Parent observed={observableA} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
assertLog(['Child: a-0', 'Grandchild: a-0']);
|
||||
@@ -434,7 +434,7 @@ describe('useSubscription', () => {
|
||||
let renderer;
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(<Parent observed={observableA} />, {
|
||||
unstable_isConcurrent: true,
|
||||
isConcurrent: true,
|
||||
});
|
||||
});
|
||||
assertLog(['Child: a-0', 'Grandchild: a-0']);
|
||||
@@ -532,7 +532,7 @@ describe('useSubscription', () => {
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(
|
||||
<Subscription source={eventHandler} />,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
assertLog([true]);
|
||||
@@ -566,7 +566,7 @@ describe('useSubscription', () => {
|
||||
await act(() => {
|
||||
renderer = ReactTestRenderer.create(
|
||||
<Subscription subscription={subscription1} />,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
});
|
||||
await waitForAll([]);
|
||||
@@ -607,7 +607,7 @@ describe('useSubscription', () => {
|
||||
<Subscriber id="first" />
|
||||
<Subscriber id="second" />
|
||||
</React.Fragment>,
|
||||
{unstable_isConcurrent: true},
|
||||
{isConcurrent: true},
|
||||
);
|
||||
await waitForAll(['render:first:A', 'render:second:A']);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user