3.1.0 • Published 3 years ago
rollup-jest v3.1.0
rollup-jest
Rollup preprocessor for Jest.
Install
npm install rollup-jest rollup --save-devUsage
Add preset to Jest config:
{
"jest": {
"preset": "rollup-jest"
}
}
// alternatively, specifying the files to transform:
{
"jest": {
"transform": {
"\\.m?js$": "rollup-jest"
},
}
}
// or with options:
// the preset enables sourcemaps by default
{
"jest": {
"transform": {
"\\.m?js$": ["rollup-jest", {"output": {"sourcemap": true}}]
},
}
}Write your tests with ES modules:
import path from 'path'
test('parses extname', () => {
expect(path.extname('foo.md')).toBe('.md')
})Happy testing!
Configuration
Use configFile field
NOTE: To use ESM format configFile in Rollup v3, you should add --experimental-vm-module flag to run jest,eg. NODE_OPTIONS=--experimental-vm-modules npm run test
{
"jest": {
"transform": {
"\\.js$": ["rollup-jest", {"configFile": "./rollup.config.js"}]
}
}
}rollup.config.js:
import inject from '@rollup/plugin-inject'
let config = {}
if (process.env.NODE_ENV === 'test') {
config = {
plugins: [inject({React: 'react'})],
}
}
export default configUse inline config
{
"jest": {
"transform": {
"\\.js$": [
"rollup-jest",
{"plugins": [["@rollup/plugin-inject", {"React": "react"}]]}
]
}
}
}All options
useCache: boolean: Defaulttrue. Enable caching of entry module. This can mess with plugins (e.g. typescript).resolveImports: 'relative' | boolean: Defaultfalse. Resolve (bundle) imports, either all (incl. packages) or only relative files.args: any: If your config file exports a function, you can use this field to pass arguments that aren't supported in rollup'sinputOptions.plugins: Plugin[]: Gets merged with plugins from config file. Special syntax[name, options]allows you to specify the plugin in json withoutrequire.