Skip to content

Commit

Permalink
Fix #770 merge options
Browse files Browse the repository at this point in the history
  • Loading branch information
blackpost38 committed Jan 26, 2017
1 parent 6f5fed0 commit 2ef8895
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/ShallowWrapper.js
Expand Up @@ -3,6 +3,7 @@ import flatten from 'lodash/flatten';
import unique from 'lodash/uniq';
import compact from 'lodash/compact';
import cheerio from 'cheerio';
import assign from 'object.assign';

import ComplexSelector from './ComplexSelector';
import {
Expand Down Expand Up @@ -1022,7 +1023,7 @@ class ShallowWrapper {
* @param options object
* @returns {ShallowWrapper}
*/
dive(options) {
dive(options = {}) {
const name = 'dive';
return this.single(name, (n) => {
if (isDOMComponentElement(n)) {
Expand All @@ -1031,7 +1032,7 @@ class ShallowWrapper {
if (!isCustomComponentElement(n)) {
throw new TypeError(`ShallowWrapper::${name}() can only be called on components`);
}
return new ShallowWrapper(n, null, options);
return new ShallowWrapper(n, null, assign({}, this.options, options));
});
}
}
Expand Down
18 changes: 18 additions & 0 deletions test/ShallowWrapper-spec.jsx
Expand Up @@ -3842,11 +3842,18 @@ describe('shallow', () => {
return <RendersDOM />;
}
}
WrapsRendersDOM.contextTypes = { foo: React.PropTypes.string };
class DoubleWrapsRendersDOM extends React.Component {
render() {
return <WrapsRendersDOM />;
}
}
class ContextWrapsRendersDOM extends React.Component {
render() {
return <WrapsRendersDOM />;
}
}
ContextWrapsRendersDOM.contextTypes = { foo: React.PropTypes.string };

it('throws on a DOM node', () => {
const wrapper = shallow(<RendersDOM />);
Expand Down Expand Up @@ -3883,6 +3890,17 @@ describe('shallow', () => {
const underwater = wrapper.dive();
expect(underwater.is(RendersDOM)).to.equal(true);
});

it('should merge and pass options through', () => {
const wrapper = shallow(<ContextWrapsRendersDOM />, { context: { foo: 'hello' } });
expect(wrapper.context()).to.deep.equal({ foo: 'hello' });

let underwater = wrapper.dive();
expect(underwater.context()).to.deep.equal({ foo: 'hello' });

underwater = wrapper.dive({ context: { foo: 'enzyme!' } });
expect(underwater.context()).to.deep.equal({ foo: 'enzyme!' });
});
});

describeIf(ITERATOR_SYMBOL, '@@iterator', () => {
Expand Down

0 comments on commit 2ef8895

Please sign in to comment.