After a discussion with @spicyj we decided to keep the warning even though the functions will throw in production. The warning is the only way to learn about that.

We should also document how to pass the secret through in case you know what you're doing.

typeCheckFail(
        PropTypes.element,
        false,
        'Invalid prop `testProp` of type `boolean` supplied to `testComponent`, ' +
        'expected a single ReactElement.'
      );
    });
    it('should be able to define a single child as label', () => {
      spyOn(console, 'error');
      var instance = <Component label={<div />} />;
      ReactTestUtils.renderIntoDocument(instance);
      expectDev(console.error.calls.count()).toBe(0);
    });
    it('should warn when passing no label and isRequired is set', () => {
      spyOn(console, 'error');
      var instance = <Component />;
      ReactTestUtils.renderIntoDocument(instance);
      expectDev(console.error.calls.count()).toBe(1);
    });
    it('should be implicitly optional and not warn without values', () => {
      typeCheckPass(PropTypes.element, null);
      typeCheckPass(PropTypes.element, undefined);
    });
    it('should warn for missing required values', () => {
      typeCheckFailRequiredValues(PropTypes.element.isRequired);
    });
  });
  describe('Instance Types', () => {
    it('should warn for invalid instances', () => {
      function Person() {}