Most of the components we write have other components nested in them.
const Hello = ({ name }) => <h1>Hello {name}!</h1>;
const HelloContainer = (props) => (
<div>
<Hello {...props} />
</div>
);
If we are to shallow render the above component using Enzyme, we'll only see things one layer deep:
const wrapper = shallow(<HelloContainer name="World" />);
// wrapper ~= <div><Hello name="World" /></div>
If we'd like to explore a particular child of the rendered component
further, we can do a little
find
and
dive
.
const wrapper = shallow(<HelloContainer name="World" />);
const helloWrapper = wrapper.find(Hello).dive();
expect(helloWrapper.text()).toEqual("Hello World!");
This allows us to make pinpoint assertions about how our components render without mounting the entire thing.
See a live example here.
h/t Vidal Ekechukwu