How to resolve “TypeError: require.context is not a function” in Jest

In Handoff, we use Webpack’s require.context function, to dynamically load JavaScript files.

While we were writing Jest tests, we ran into an the error “TypeError: require.context is not a function”. This is because of the fact the that the JS files are not bundled by Webpack, but by Jest.

If you use Babel, there is simple workaround that can be done as follows:

npm i -D babel-plugin-transform-require-context

then update your .babelrc or babel.config.js as follows:

this could also be named .babelrc

Simply run your tests now and it should be good to go!

Note: the Babel transform plugin will change the return value of the require.contextcall so that it will not resolve to anything. This means that if you need the actual code to be lifted from disk, this will not work (!).

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Bjorn Heesakkers

Bjorn Heesakkers

Full Stack Developer. Working for Handoff.design and Sendcloud