diff --git a/src/ShallowWrapper.js b/src/ShallowWrapper.js index 31f160ad9..620b2c7de 100644 --- a/src/ShallowWrapper.js +++ b/src/ShallowWrapper.js @@ -133,7 +133,7 @@ export default class ShallowWrapper { this.single(() => { withSetStateAllowed(() => { this.unrendered = React.cloneElement(this.unrendered, props); - this.renderer.render(this.unrendered); + this.renderer.render(this.unrendered, this.options.context); this.update(); }); }); diff --git a/src/__tests__/ShallowWrapper-spec.js b/src/__tests__/ShallowWrapper-spec.js index 66bfea323..dcb50f3d8 100644 --- a/src/__tests__/ShallowWrapper-spec.js +++ b/src/__tests__/ShallowWrapper-spec.js @@ -367,6 +367,24 @@ describe('shallow', () => { expect(wrapper.props().d).to.equal('e'); }); + it('should pass in old context', () => { + class Foo extends React.Component { + render() { + return ( +
{this.context.x}
+ ); + } + } + + Foo.contextTypes = { x: React.PropTypes.string }; + + const context = { x: 'yolo' }; + const wrapper = shallow(, { context }); + expect(wrapper.first('div').text()).to.equal('yolo'); + + wrapper.setProps({ x: 5 }); // Just force a re-render + expect(wrapper.first('div').text()).to.equal('yolo'); + }); }); describe('.setContext(newContext)', () => {