MCPcopy
hub / github.com/facebook/react / actAsync

Function actAsync

packages/react-devtools-shared/src/__tests__/utils.js:94–124  ·  view source on GitHub ↗
(
  cb: () => *,
  recursivelyFlush: boolean = true,
)

Source from the content-addressed store, hash-verified

92}
93
94export async function actAsync(
95 cb: () => *,
96 recursivelyFlush: boolean = true,
97): Promise<void> {
98 // act from react-test-renderer has some side effects on React DevTools
99 // it injects the renderer for DevTools, see ReactTestRenderer.js
100 const actTestRenderer = getActTestRendererImplementation();
101 const actDOM = getActDOMImplementation();
102
103 await actDOM(async () => {
104 await actTestRenderer(async () => {
105 await cb();
106 });
107 });
108
109 if (recursivelyFlush) {
110 while (jest.getTimerCount() > 0) {
111 await actDOM(async () => {
112 await actTestRenderer(async () => {
113 jest.runAllTimers();
114 });
115 });
116 }
117 } else {
118 await actDOM(async () => {
119 await actTestRenderer(async () => {
120 jest.runOnlyPendingTimers();
121 });
122 });
123 }
124}
125
126type RenderImplementation = {
127 render: (elements: ?ReactNode) => () => void,

Callers 4

ComponentFunction · 0.85
store-test.jsFile · 0.85

Calls 5

getActDOMImplementationFunction · 0.85
runAllTimersMethod · 0.80
runOnlyPendingTimersMethod · 0.80
cbFunction · 0.50

Tested by

no test coverage detected