anchor.diff:          expect(component.state['counter'], 3);
           expect(component.state['counter'], getLatestJSCounter());
   
  -        //TODO check to see if we need to mimic this test for Component2
           if (!isComponent2) {
             expect(component.lifecycleCalls, orderedEquals(getUpdatingSetStateLifeCycleCalls()));
           }
  
positive.code:                 : matchCall('componentWillUpdateWithContext',
                      args: [newPropsWithDefaults, expectedState, expectedContext], props: initialPropsWithDefaults),
              matchCall('render', props: newPropsWithDefaults),
              //TODO double check if args and props are correct
              isComponent2
                  ? matchCall('getSnapshotBeforeUpdate',
                      args: [initialPropsWithDefaults, expectedState], props: newPropsWithDefaults)
  
negative.code:                 ? matchCall('getSnapshotBeforeUpdate', args: [expectedProps, initialState], state: newState)
                  : null,
              isComponent2
                  ? matchCall('componentDidUpdate', args: [expectedProps, initialState, null], state: newState)
                  : matchCall('componentDidUpdate', args: [expectedProps, initialState], state: newState),
            ].where((matcher) => matcher != null)));
      });
  