Codemods for migrating test files to Jest
Codemods are small programs that help you automate changes to your codebase. Think of them as search and replace on steroids. They are executed by the Facebook jscodeshift tool.
This tool is made for trying out Jest on your existing test files. We strive to make the migration as smooth as possible, but some manual intervention and tweaks to your tests are to be expected.
$ npm install -g jest-codemods
This installs the runner as
To use the interactive CLI run
If you are using Flow types
$ jest-codemods --parser flow
For more options
$ jest-codemods --helpCodemods for migrating test files to Jest.Usage$ jest-codemods <path> [options]path Files or directory to transform. Can be a glob like src/**.test.jsOptions--force, -f Bypass Git safety checks and forcibly run codemods--dry, -d Dry run (no changes are made to files)--parser The parser to use for parsing your source files (babel | babylon | flow) [babel]
To transform all test files in a directory run
jest-codemods test-folder in your terminal.
Notice the console output for errors, manual intervention and tweaks are to be expected.
To make the process as simple as possible, we recommend the
that wraps the
But you can also run the transformations directly using
$ npm install -g jscodeshift$ npm install jest-codemods$ jscodeshift -t node_modules/jest-codemods/dist/transformers/tape.js test-folder$ jscodeshift -t node_modules/jest-codemods/dist/transformers/ava.js test-folder$ jscodeshift -t node_modules/jest-codemods/dist/transformers/mocha.js test-folder$ jscodeshift -t node_modules/jest-codemods/dist/transformers/chai-assert.js test-folder
require statements determine if any transformation are carried out.
The original code quoting style is preserved.
Warnings are made if packages are used that are incompatible with Jest.
proxyquire is replaced with Jest mocks.
Warnings for unsupported AVA features:
Warnings for unsupported Tape features:
Thanks to avajs/ava-codemods for inspiration and CLI setup.
The Mocha and Chai support began its life at paularmstrong/mocha-to-jest-codemod
To get started, run:
npm run check # (runs lint and unit test) npm run lint npm run test npm run test:cov npm run test:watch