diff --git a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
index e4042bff0..833b37b46 100644
--- a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
+++ b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
@@ -274,14 +274,15 @@ describeWithDOM('mount', () => {
wrap()
.withOverrides(() => getAdapter(), () => ({
+ isCustomComponent: undefined,
RootFinder: undefined,
+ wrapWithWrappingComponent: undefined,
createMountRenderer: (...args) => {
const renderer = realCreateMountRenderer(...args);
delete renderer.getWrappingComponentRenderer;
renderer.getNode = () => null;
return renderer;
},
- isCustomComponent: undefined,
}))
.describe('with an old adapter', () => {
it('renders fine when wrappingComponent is not passed', () => {
@@ -297,15 +298,16 @@ describeWithDOM('mount', () => {
});
});
- itIf(is('<=0.13'), 'throws an error if wrappingComponent is passed', () => {
- class WrappingComponent extends React.Component {
- render() {
- const { children } = this.props;
- return children;
- }
+ class RendersChildren extends React.Component {
+ render() {
+ const { children } = this.props;
+ return children;
}
+ }
+
+ itIf(is('<=0.13'), 'throws an error if wrappingComponent is passed', () => {
expect(() => mount(
, {
- wrappingComponent: WrappingComponent,
+ wrappingComponent: RendersChildren,
})).to.throw('your adapter does not support `wrappingComponent`. Try upgrading it!');
});
diff --git a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
index a999689be..831f711bb 100644
--- a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
+++ b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
@@ -283,14 +283,19 @@ describe('shallow', () => {
wrap()
.withOverrides(() => getAdapter(), () => ({
+ isCustomComponent: undefined,
RootFinder: undefined,
wrapWithWrappingComponent: undefined,
- isCustomComponent: undefined,
}))
.describe('with an old adapter', () => {
it('renders fine when wrappingComponent is not passed', () => {
const wrapper = shallow();
- expect(wrapper.type()).to.equal('div');
+ expect(wrapper.debug()).to.equal(`
+
+ Context says:${' '}
+
+
+
`);
});
it('throws an error if wrappingComponent is passed', () => {
@@ -300,6 +305,32 @@ describe('shallow', () => {
});
});
});
+
+ class RendersChildren extends React.Component {
+ render() {
+ const { children } = this.props;
+ return children;
+ }
+ }
+
+ itIf.skip(is('<=0.13'), 'throws an error if wrappingComponent is passed', () => {
+ expect(() => shallow(, {
+ wrappingComponent: RendersChildren,
+ })).to.throw('your adapter does not support `wrappingComponent`. Try upgrading it!');
+ });
+
+ describeIf.skip(is('>= 16.3'), 'uses the isValidElementType from the Adapter to validate the prop type of Component', () => {
+ const Foo = () => null;
+ const Bar = () => null;
+ wrap()
+ .withConsoleThrows()
+ .withOverride(() => getAdapter(), 'isValidElementType', () => val => val === Foo)
+ .it('with isValidElementType defined on the Adapter', () => {
+ expect(() => {
+ shallow();
+ }).to.throw('Warning: Failed prop type: Component must be a valid element type!\n in WrapperComponent');
+ });
+ });
});
describe('context', () => {
diff --git a/packages/enzyme-test-suite/test/_helpers/index.jsx b/packages/enzyme-test-suite/test/_helpers/index.jsx
index e4ffe8465..61512fa7d 100644
--- a/packages/enzyme-test-suite/test/_helpers/index.jsx
+++ b/packages/enzyme-test-suite/test/_helpers/index.jsx
@@ -30,6 +30,14 @@ describeIf.only = (test, a, b) => {
}
};
+describeIf.skip = (test, a, b) => {
+ if (typeof test !== 'boolean') {
+ throw new TypeError(`a boolean is required, you passed a ${typeof test}`);
+ }
+
+ describeIf(false, a, b);
+};
+
/**
* Simple wrapper around mocha it which allows a boolean to be passed in first which
* determines whether or not the test will be run
@@ -58,6 +66,14 @@ itIf.only = (test, a, b) => {
}
};
+itIf.skip = (test, a, b) => {
+ if (typeof test !== 'boolean') {
+ throw new TypeError(`a boolean is required, you passed a ${typeof test}`);
+ }
+
+ itIf(false, a, b);
+};
+
/**
* Simple wrapper around mocha it which allows an array of possible values to test against.
* Each test will be wrapped in a try/catch block to handle any errors.