See this example: https://github.com/facebook/react/issues/11508#issuecomment-345464797.

I think it probably reflects a misunderstanding of how props and state work, and we should detect and warn if we see this.
expect(instance._testJournal.lifeCycleAtStartOfWillMount).toBe('UNMOUNTED');
    
    expect(instance._testJournal.stateAtStartOfDidMount).toEqual(
      DID_MOUNT_STATE,
    );
    expect(instance._testJournal.lifeCycleAtStartOfDidMount).toBe('MOUNTED');
    
    expect(instance._testJournal.stateInInitialRender).toEqual(
      INIT_RENDER_STATE,
    );
    expect(instance._testJournal.lifeCycleInInitialRender).toBe('UNMOUNTED');
    expect(getLifeCycleState(instance)).toBe('MOUNTED');
    
    instance.forceUpdate();
    
    expect(instance._testJournal.stateInLaterRender).toEqual(NEXT_RENDER_STATE);
    expect(instance._testJournal.lifeCycleInLaterRender).toBe('MOUNTED');
    expect(getLifeCycleState(instance)).toBe('MOUNTED');
    ReactDOM.unmountComponentAtNode(container);
    expect(instance._testJournal.stateAtStartOfWillUnmount).toEqual(
      WILL_UNMOUNT_STATE,
    );
    
    expect(instance._testJournal.lifeCycleAtStartOfWillUnmount).toBe('MOUNTED');
    
    expect(getLifeCycleState(instance)).toBe('UNMOUNTED');
    expect(instance.state).toEqual(POST_WILL_UNMOUNT_STATE);
  });
  it('should not throw when updating an auxiliary component', () => {
    class Tooltip extends React.Component {