From 81eef12507cc49dae1f70e44cea5493295eb69cd Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Mon, 27 Feb 2017 15:54:53 -0800 Subject: [PATCH] Test that hidden subtrees render/update synchronously When useSyncScheduling is set to true (as it is in the DOM renderer), we shouldn't give OffscreenPriority to hidden subtrees. Everything should be sync/task. --- src/renderers/__tests__/ReactUpdates-test.js | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/renderers/__tests__/ReactUpdates-test.js b/src/renderers/__tests__/ReactUpdates-test.js index dfaa439219..fd5bed2632 100644 --- a/src/renderers/__tests__/ReactUpdates-test.js +++ b/src/renderers/__tests__/ReactUpdates-test.js @@ -1189,4 +1189,39 @@ describe('ReactUpdates', () => { instance.setState(() => null); expect(ops).toEqual([]); }); + + // Will change once we switch to async by default + it('synchronously renders hidden subtrees', () => { + let container = document.createElement('div'); + let ops = []; + + function Baz() { + ops.push('Baz'); + return null; + } + + function Bar() { + ops.push('Bar'); + return null; + } + + function Foo() { + ops.push('Foo'); + return ( +
+ + +
+ ); + } + + // Mount + ReactDOM.render(, container); + expect(ops).toEqual(['Foo', 'Bar', 'Baz']); + ops = []; + + // Update + ReactDOM.render(, container); + expect(ops).toEqual(['Foo', 'Bar', 'Baz']); + }); });