A few days ago, I updated a React application that uses Jest and Enzyme for testing.

The new tests yielded errors like cannot find module 'react-test-renderer'.

Solution: Install react-test-renderer and enzyme-to-json as dev dependencies, and re-factor tests to use enzyme-to-json.

npm i --save-dev react-test-renderer enzyme-to-json

In your package.json file, add the serializer to your jest config:

{
 "jest": {
    "snapshotSerializers": [
      "enzyme-to-json/serializer"
    ]
  }
}

Example test file before update:

import React from 'react'
import { shallow } from 'enzyme'
import renderer from 'react-test-renderer'

import About from '../About'

test('About renders a snapshot properly', () => {
  const tree = renderer.create(<About />).toJSON()
  expect(tree).toMatchSnapshot()
})

After re-factor:

import React from 'react'
import { shallow } from 'enzyme'
import toJson from 'enzyme-to-json'

import About from '../About'

test('About renders a snapshot properly', () => {
  const tree = shallow(<About />)
  expect(toJson(tree)).toMatchSnapshot()
})