# Modes of the `mount` wrapper When running `toJson` on a mount wrapper, you can also set a mode in the options, which can be `shallow` or `deep`. ## `shallow` mode Given an enzyme mount wrapper, especially from selector traversal, return a test object rendered to **minimum** depth. It might contain DOM nodes, but any children which are React components are leaves of the tree. For some tests, it might combine the benefits of the `mount` and `shallow` wrappers. ### Example Given this class: ```js class BasicClass extends Component { render() { return (
{this.props.children}
); } } ``` Here is the snapshot **without any mode**: ```js it('converts basic class mount', () => { const mounted = mount( Hello! , ); expect(toJson(mounted)).toMatchSnapshot(); }); // snapshot => exports[`converts basic class mount 1`] = `
Hello!
`; ``` And now here is the snapshot **with the `shallow` mode**: ```js it('converts basic class mount', () => { const mounted = mount( Hello! , ); expect(toJson(mounted, {mode: 'shallow'})).toMatchSnapshot(); }); // snapshot => exports[`converts basic class mount`] = ` `; ``` ## `deep` mode Given an enzyme `mount` wrapper, especially from selector traversal, return a test object rendered to **maximum** depth. It contains only DOM nodes, no React components. ### Example Given this class: ```js class BasicClass extends Component { render() { return (
{this.props.children}
); } } ``` Here is the snapshot **without any mode**: ```js it('converts basic class mount', () => { const mounted = mount( Hello! , ); expect(toJson(mounted)).toMatchSnapshot(); }); // snapshot => exports[`converts basic class mount 1`] = `
Hello!
`; ``` And now here is the snapshot **with the `deep` mode**: ```js it('converts basic class mount', () => { const mounted = mount( Hello! , ); expect(toJson(mounted, {mode: 'deep'})).toMatchSnapshot(); }); // snapshot => exports[`converts basic class mount`] = `
Hello!
`; ```