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:
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.context
call 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 (!).