enzyme-shallow-until
is a utility library to extend enzyme's shallow function.
It gives ShallowWrapper the ability to dive until a specific component type.
Especially useful when you have some HOC-style components to test.
- install
npm i -D enzyme enzyme-shallow-until enzyme-adapter-react-xx
- setup
ShallowWrapper
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-xx';
import until from 'enzyme-shallow-until';
import ShallowWrapper from 'enzyme/ShallowWrapper';
Enzyme.configure({ adapter: new Adapter() });
ShallowWrapper.prototype.until = until;
const wrapper = shallow(<ComposedComponent />).until(Component);
// in test-setup.js
import { createSerializer } from 'enzyme-to-json';
expect.addSnapshotSerializer(createSerializer({ mode: 'deep' }));
// in xxx.test.js
it('should keep render result unchanged', () => {
const wrapper = shallow(<ComposedComponent />).until(Component);
expect(wrapper).toMatchSnapshot();
})
Thank @matthieuprat for his gist