diff --git a/packages/react-art/src/__tests__/ReactART-test.js b/packages/react-art/src/__tests__/ReactART-test.js index d2ce830aa8..7e783b5582 100644 --- a/packages/react-art/src/__tests__/ReactART-test.js +++ b/packages/react-art/src/__tests__/ReactART-test.js @@ -28,6 +28,10 @@ const Circle = require('react-art/Circle'); const Rectangle = require('react-art/Rectangle'); const Wedge = require('react-art/Wedge'); +// Isolate the noop renderer +jest.resetModules(); +const ReactNoop = require('react-noop-renderer'); + let Group; let Shape; let Surface; @@ -354,7 +358,7 @@ describe('ReactART', () => { const CurrentRendererContext = React.createContext(null); function Yield(props) { - testRenderer.unstable_yield(props.value); + ReactNoop.yield(props.value); return null; } @@ -372,19 +376,16 @@ describe('ReactART', () => { // Using test renderer instead of the DOM renderer here because async // testing APIs for the DOM renderer don't exist. - const testRenderer = ReactTestRenderer.create( + ReactNoop.render( , - { - unstable_isAsync: true, - }, ); - testRenderer.unstable_flushThrough(['A']); + ReactNoop.flushThrough(['A']); ReactDOM.render( @@ -399,7 +400,7 @@ describe('ReactART', () => { expect(ops).toEqual([null, 'ART']); ops = []; - expect(testRenderer.unstable_flushAll()).toEqual(['B', 'C']); + expect(ReactNoop.flush()).toEqual(['B', 'C']); expect(ops).toEqual(['Test']); }); diff --git a/packages/react-test-renderer/src/ReactTestHostConfig.js b/packages/react-test-renderer/src/ReactTestHostConfig.js index 7c7bf958ab..e42a8c4bae 100644 --- a/packages/react-test-renderer/src/ReactTestHostConfig.js +++ b/packages/react-test-renderer/src/ReactTestHostConfig.js @@ -180,7 +180,7 @@ export function createTextInstance( }; } -export const isPrimaryRenderer = true; +export const isPrimaryRenderer = false; // This approach enables `now` to be mocked by tests, // Even after the reconciler has initialized and read host config values. export const now = () => TestRendererScheduling.nowImplementation(); diff --git a/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js b/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js index 1f463f9172..1ea2bdaeb6 100644 --- a/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js +++ b/packages/react-test-renderer/src/__tests__/ReactTestRenderer-test.internal.js @@ -16,6 +16,10 @@ const React = require('react'); const ReactTestRenderer = require('react-test-renderer'); const prettyFormat = require('pretty-format'); +// Isolate noop renderer +jest.resetModules(); +const ReactNoop = require('react-noop-renderer'); + // Kind of hacky, but we nullify all the instances to test the tree structure // with jasmine's deep equality function, and test the instances separate. We // also delete children props because testing them is more annoying and not @@ -1000,4 +1004,19 @@ describe('ReactTestRenderer', () => { }), ); }); + + it('can concurrently render context with a "primary" renderer', () => { + const Context = React.createContext(null); + const Indirection = React.Fragment; + const App = () => ( + + + {() => null} + + + ); + ReactNoop.render(); + ReactNoop.flush(); + ReactTestRenderer.create(); + }); });