diff --git a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
index 833b37b46..ebec55c34 100644
--- a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
+++ b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
@@ -261,6 +261,53 @@ describeWithDOM('mount', () => {
expect(wrapper.text()).to.equal('Context says: I can be set!');
});
+ describeIf(is('>= 16.3'), 'with createContext()', () => {
+ let Context1;
+ let Context2;
+
+ function WrappingComponent(props) {
+ const { value1, value2, children } = props;
+ return (
+
+
+ {children}
+
+
+ );
+ }
+
+ function Component() {
+ return (
+
+ {value1 => (
+
+ {value2 => (
+ Value 1: {value1}; Value 2: {value2}
+ )}
+
+ )}
+
+ );
+ }
+
+ beforeEach(() => {
+ Context1 = createContext('default1');
+ Context2 = createContext('default2');
+ });
+
+ it('renders', () => {
+ const wrapper = mount(, {
+ wrappingComponent: WrappingComponent,
+ wrappingComponentProps: {
+ value1: 'one',
+ value2: 'two',
+ },
+ });
+
+ expect(wrapper.text()).to.equal('Value 1: one; Value 2: two');
+ });
+ });
+
it('throws an error if the wrappingComponent does not render its children', () => {
class BadWrapper extends React.Component {
render() {
@@ -437,20 +484,50 @@ describeWithDOM('mount', () => {
expect(wrapper.context('name')).to.equal(context.name);
});
- itIf(is('>= 16.3'), 'finds elements through Context elements', () => {
- const { Provider, Consumer } = createContext('');
+ describeIf(is('>= 16.3'), 'createContext()', () => {
+ let Context;
- class Foo extends React.Component {
- render() {
- return (
- {value => {value}}
- );
+ beforeEach(() => {
+ Context = createContext('hello');
+ });
+
+ it('finds elements through Context elements', () => {
+ class Foo extends React.Component {
+ render() {
+ return (
+ {value => {value}}
+ );
+ }
}
- }
- const wrapper = mount(
);
+ const wrapper = mount(
);
+
+ expect(wrapper.find('span').text()).to.equal('foo');
+ });
- expect(wrapper.find('span').text()).to.equal('foo');
+ it('can render a as the root', () => {
+ const wrapper = mount(
+
+ {value => {value}
}
+ ,
+ );
+ expect(wrapper.text()).to.equal('cool');
+
+ wrapper.setProps({ value: 'test' });
+ expect(wrapper.text()).to.equal('test');
+ });
+
+ it('can render a as the root', () => {
+ const wrapper = mount(
+ {value => {value}
},
+ );
+ expect(wrapper.text()).to.equal('hello');
+
+ wrapper.setProps({
+ children: value =>
Value is: {value}
,
+ });
+ expect(wrapper.text()).to.equal('Value is: hello');
+ });
});
describeIf(is('>= 16.3'), 'forwarded ref Components', () => {