Just about every time I set up a new `Context.Provider`, I end up accidentally specifying a `values` prop rather than `value`.  While it's a minor error, generally I build the container in which the provider resides and commit it to the code base before I ever use it.  It's only later when I go to use it that I realize I did it again.  Since the `Context.Provider` seems pretty much useless without a `value` prop specified, I'd love it if there was a prop error if it is missing... especially if another prop is defined on the `Context.Provider` instead.
ReactTestUtils.renderIntoDocument(
      <Component testContext={{foo: 'foo', bar: 123}} />,
    );
    ReactTestUtils.renderIntoDocument(<Component testContext={{foo: 'foo'}} />);
  });
  it('warns of incorrect prop types on context provider', () => {
    const TestContext = React.createContext();
    TestContext.Provider.propTypes = {
      value: PropTypes.string.isRequired,
    };
    ReactTestUtils.renderIntoDocument(<TestContext.Provider value="val" />);
    class Component extends React.Component {
      render() {
        return <TestContext.Provider />;
      }
    }
    expect(() => ReactTestUtils.renderIntoDocument(<Component />)).toErrorDev(
      'Warning: Failed prop type: The prop `value` is marked as required in ' +
        '`Context.Provider`, but its value is `undefined`.\n' +
        '    in Component (at **)',
    );
  });
  
  
  it('should warn (but not error) if getChildContext method is missing', () => {
    class ComponentA extends React.Component {
      static childContextTypes = {
        foo: PropTypes.string.isRequired,
      };
      render() {