/*** Copyright (c) Meta Platforms, Inc. and affiliates.** This source code is licensed under the MIT license found in the* LICENSE file in the root directory of this source tree.** @emails react-core* @jest-environment node*/'use strict';
let React;
let act;
let ReactFiberReconciler;
let ConcurrentRoot;
let DefaultEventPriority;
describe('ReactFiberHostContext', () => {
beforeEach(() => {
jest.resetModules();
React = require('react');
act = React.unstable_act;
ReactFiberReconciler = require('react-reconciler');
ConcurrentRoot =
require('react-reconciler/src/ReactRootTags').ConcurrentRoot;
DefaultEventPriority =
require('react-reconciler/src/ReactEventPriorities').DefaultEventPriority;
});global.IS_REACT_ACT_ENVIRONMENT = true;
// @gate __DEV__
it('should send the context to prepareForCommit and resetAfterCommit', () => {
const rootContext = {};
const childContext = {};
const Renderer = ReactFiberReconciler({
prepareForCommit: function (hostContext) {
expect(hostContext).toBe(rootContext);
return null;
},resetAfterCommit: function (hostContext) {
expect(hostContext).toBe(rootContext);
},getRootHostContext: function () {
return rootContext;
},getChildHostContext: function () {
return childContext;
},shouldSetTextContent: function () {
return false;
},createInstance: function () {
return null;
},finalizeInitialChildren: function () {
return null;
},appendInitialChild: function () {
return null;
},now: function () {
return 0;
},appendChildToContainer: function () {
return null;
},clearContainer: function () {},
getCurrentEventPriority: function () {
return DefaultEventPriority;
},shouldAttemptEagerTransition() {
return false;
},requestPostPaintCallback: function () {},
maySuspendCommit(type, props) {
return false;
},preloadInstance(type, props) {
return true;
},startSuspendingCommit() {},
suspendInstance(type, props) {},
waitForCommitToBeReady() {
return null;
},supportsMutation: true,
});const container = Renderer.createContainer(
rootContext,
ConcurrentRoot,
null,
false,
'',null,
);act(() => {
Renderer.updateContainer(
<a>
<b />
</a>,
container,/* parentComponent: */ null,
/* callback: */ null,
);});});});