dillon1000/react
Commit
Browse files [Fiber] Implement test renderer (#8628)
* ReactTestRenderer move current impl to stack dir * ReactTestRenderer on fiber: commence! * ReactTestRenderer: most non-ref/non-public-instance tests are passing * Move ReactTestFiberComponent functions from Renderer to Component file * test renderer: get rid of private root containers and root Maps * TestRenderer: switch impl based on ReactDOMFeatureFlag.useFiber * ReactTestRenderer: inline component creation * ReactTestRenderer: return to pristine original glory (+ Fiber for error order difference) * TestRendererFiber: use a simple class as TestComponentInstances * Add `getPublicInstance` to support TestRenderer `createNodeMock` * Rename files to end. Update for `mountContainer->createContainer` change * test renderer return same object to prevent unnecessary context pushing/popping * Fiber HostConfig add getPublicInstance. This should be the identity fn everywhere except the test renderer * appease flow * Initial cleanup from sleepy work * unstable_batchedUpdates * Stack test renderer: cache nodeMock to not call on unmount * add public instance type parameter to the reconciler * test renderer: set _nodeMock when mounted * More cleanup * Add test cases for root fragments and (maybe?) root text nodes * Fix the npm package build Explicitly require the Stack version by default. Add a separate entry point for Fiber. We don't add fiber.js to the package yet since it's considered internal until React 16. * Relax the ref type from Object to mixed This seems like the most straightforward way to support getPublicInstance for test renderer. * Remove accidental newline * test renderer: unify TestComponent and TestContainer, handle root updates * Remove string/number serialization attempts since Fiber ensures all textInstances are strings * Return full fragments in toJSON * Test Renderer remove TestComponent instances for simple objects * Update babylon for exact object type syntax * Use $$typeof because clarity > punching ducks. * Minor Flow annotation tweaks * Tweak style, types, and naming * Fix typo
Changed paths24 files
First-parent comparisonpackage.json ModifiedA packages/react-test-renderer/fiber.js AddedM packages/react-test-renderer/index.js ModifiedM scripts/fiber/tests-passing.txt ModifiedM src/renderers/art/ReactARTFiber.js ModifiedM src/renderers/dom/fiber/ReactDOMFiber.js ModifiedM src/renderers/native/ReactNativeFiber.js ModifiedM src/renderers/noop/ReactNoop.js ModifiedM src/renderers/shared/fiber/ReactFiber.js ModifiedM src/renderers/shared/fiber/ReactFiberBeginWork.js ModifiedM src/renderers/shared/fiber/ReactFiberCommitWork.js ModifiedM src/renderers/shared/fiber/ReactFiberCompleteWork.js ModifiedM src/renderers/shared/fiber/ReactFiberHostContext.js ModifiedM src/renderers/shared/fiber/ReactFiberReconciler.js ModifiedM src/renderers/shared/fiber/ReactFiberScheduler.js ModifiedM src/renderers/testing/ReactTestRenderer.js ModifiedA src/renderers/testing/ReactTestRendererFiber.js AddedM src/renderers/testing/__tests__/ReactTestRenderer-test.js ModifiedR src/renderers/testing/ReactTestEmptyComponent.js →src/renderers/testing/stack/ReactTestEmptyComponent.js RenamedR src/renderers/testing/ReactTestMount.js →src/renderers/testing/stack/ReactTestMount.js RenamedR src/renderers/testing/ReactTestReconcileTransaction.js →src/renderers/testing/stack/ReactTestReconcileTransaction.js RenamedA src/renderers/testing/stack/ReactTestRendererStack.js AddedR src/renderers/testing/ReactTestTextComponent.js →src/renderers/testing/stack/ReactTestTextComponent.js RenamedM yarn.lock ModifiedPatch
Files changed
Rendering syntax-highlighted changes…