dillon1000/react

Commit

[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
Browse files
Changed paths24 files
First-parent comparison
M package.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 Modified
Patch

Files changed

Rendering syntax-highlighted changes…