return this.state.text !== nextState.text;
      }
      render() {
        return <span prop={this.state.text} />;
      }
    }
    ReactNoop.render(<Foo />);
    ReactNoop.flush();
    expect(ReactNoop.getChildren()).toEqual([span('foo')]);
    let called = false;
    instance.setState({}, () => {
      called = true;
    });
    ReactNoop.flush();
    expect(called).toBe(true);
  });
  
  it('calls componentWillUnmount after a deletion, even if nested', () => {
    const ops = [];
    class Bar extends React.Component {
      componentWillUnmount() {
        ops.push(this.props.name);
      }
      render() {
        return <span />;
      }
    }
    class Wrapper extends React.Component {