This test works:
```js
let interaction;

const onRender = jest.fn();

SchedulerTracing.unstable_trace("initial_event", performance.now(), () => {
  const interactions = SchedulerTracing.unstable_getCurrent();
  expect(interactions.size).toBe(1);
  interaction = Array.from(interactions)[0];

  ReactDOM.render(
    <React.Profiler id="profiler" onRender={onRender}>
      <Text text="Hi" />
    </React.Profiler>,
    document.createElement("div")
  );
});

expect(interaction).toBeDefined();
expect(onRender).toHaveBeenCalledTimes(1);
expect(onRender.mock.calls[0][6]).toContain(interaction);
```

But if you wrap it in `act`, it fails:
```js
let interaction;

const onRender = jest.fn();

TestUtils.act(() => {
  SchedulerTracing.unstable_trace("initial_event", performance.now(), () => {
    const interactions = SchedulerTracing.unstable_getCurrent();
    expect(interactions.size).toBe(1);
    interaction = Array.from(interactions)[0];

    ReactDOM.render(
      <React.Profiler id="profiler" onRender={onRender}>
        <Text text="Hi" />
      </React.Profiler>,
      document.createElement("div")
    );
  });

  expect(interaction).toBeDefined();
  expect(onRender).toHaveBeenCalledTimes(1);
  expect(onRender.mock.calls[0][6]).toContain(interaction);
});
```

In the latter case, inside of `ReactFiberScheduler`, the interactions `Set` is empty.
https://github.com/facebook/react/blob/2e5d1a8b9e2c29418a27b24306e4c8d5f8681f4f/packages/react-reconciler/src/ReactFiberScheduler.js#L2119-L2126

Note that this does not seem to impact _updates_, only the initial _mount_. I suspect we just need to wrap a callback or something minor.

I came across this while trying to write profiling tests for the new DevTools. (https://github.com/bvaughn/react-devtools-experimental/pull/258)
continuation = callback(isSync);
    if (continuation !== null) {
      return runRootCallback.bind(null, root, continuation);
    } else {
      return null;
    }
  } finally {
    
    
    
    
    if (continuation === null && prevCallbackNode === root.callbackNode) {
      root.callbackNode = null;
      root.callbackExpirationTime = NoWork;
    }
  }
}
export function flushRoot(root: FiberRoot, expirationTime: ExpirationTime) {
  if (workPhase === RenderPhase || workPhase === CommitPhase) {
    invariant(
      false,
      'work.commit(): Cannot commit while already rendering. This likely ' +
        'means you attempted to commit from inside a lifecycle method.',
    );
  }
  scheduleCallback(
    ImmediatePriority,
    renderRoot.bind(null, root, expirationTime),
  );
  flushImmediateQueue();