@samitouri / QOS-React / commits / 83393bc2be

Enable opt-in to async mode (#10535)

When the feature flag enableAsyncSubtreeAPI is true, React.unstable_AsyncComponent creates an async subtree. When it's false, it behaves like a normal, sync React component. We use this flag in www as a fail safe so that if we ship an async bug, we can set the flag to false and revert back to sync mode. For open source, we should enable the feature flag.

Andrew Clark committed Aug 24, 2017 at 10:54 UTC 83393bc2be12dfcc449fd4c1d0bf86260215e76f
2 files changed +23 -13
src/renderers/dom/fiber/__tests__/ReactDOMFiberAsync-test.js
+22 -12
@@ -26,18 +26,28 @@ describe('ReactDOMFiberAsync', () => {
26 });
27
28 if (ReactDOMFeatureFlags.useFiber) {
29 - it('renders synchronously when feature flag is disabled', () => {
30 - ReactDOM.render(
31 - <AsyncComponent><div>Hi</div></AsyncComponent>,
32 - container,
33 - );
34 - expect(container.textContent).toEqual('Hi');
35 -
36 - ReactDOM.render(
37 - <AsyncComponent><div>Bye</div></AsyncComponent>,
38 - container,
39 - );
40 - expect(container.textContent).toEqual('Bye');
29 + describe('with feature flag disabled', () => {
30 + beforeEach(() => {
31 + jest.resetModules();
32 + ReactFeatureFlags = require('ReactFeatureFlags');
33 + container = document.createElement('div');
34 + ReactFeatureFlags.enableAsyncSubtreeAPI = false;
35 + ReactDOM = require('react-dom');
36 + });
37 +
38 + it('renders synchronously', () => {
39 + ReactDOM.render(
40 + <AsyncComponent><div>Hi</div></AsyncComponent>,
41 + container,
42 + );
43 + expect(container.textContent).toEqual('Hi');
44 +
45 + ReactDOM.render(
46 + <AsyncComponent><div>Bye</div></AsyncComponent>,
47 + container,
48 + );
49 + expect(container.textContent).toEqual('Bye');
50 + });
51 });
52
53 describe('with feature flag enabled', () => {
src/renderers/shared/utils/ReactFeatureFlags.js
+1 -1
@@ -14,7 +14,7 @@
14
15 var ReactFeatureFlags = {
16 disableNewFiberFeatures: false,
17 - enableAsyncSubtreeAPI: false,
17 + enableAsyncSubtreeAPI: true,
18 };
19
20 module.exports = ReactFeatureFlags;