2016 was a big year for JavaScript testing with Jest. In the first six months of the year we rewrote Jest and built a solid foundation to significantly improve performance and the developer experience of testing JavaScript code. We flow-typed the entire codebase, built a ton of integration tests for Jest itself and adopted lerna to turn Jest from a framework into a Painless JavaScript Testing platform.

The newly created react-test-renderer finally enabled testing of react-native components. Through the jest-react-native preset (now merged directly into react-native) Jest now works out of the box for any React project and comes pre-configured in create-react-app and react-native projects. We integrated core pieces of Jest into react-native's packager and the completely new snapshot testing feature has since been used outside of Jest: It was integrated with React Storybook as “storyshots” and is being adopted by other test runners like ava.

The pretty-format project was rewritten with performance in mind to drive Jest's snapshot feature, was recently merged into Jest's monorepo and is also helpful in other test runners. Nowadays Jest is much more about collecting different ideas and solutions to testing than it is about one specific implementation of a test framework.

I'd like to deeply thank all the people that have contributed to Jest this year, both from the open source community and at Facebook: Dmitrii Abramov, Cristian Carlesso, Dan Abramov, Daniel Lo Nigro, Maxim Derbin, Evan Scott, Forbes Lindesay, Keyan Zhang and 60 more people. We'd also like to welcome Michał Pierzchała (@thymikee) as first official external contributor to Jest. He's been doing a great job managing the issues and PRs on the repo. If you'd like to start contributing to Jest, we have a bunch of good first tasks and we are always happy to help on our discord channel.

Amjad Massad built a Jest container so you can now try out Jest directly in the browser. You can use it from now on when creating GitHub issues which should help troubleshoot problems more quickly. Amjad and Haya are building repl.it to democratize programming by building powerful yet simple tools and platforms for educators, learners, and developers. They are also hiring talented engineers!

Community Update

We feel incredibly humbled that 100+ companies have adopted Jest in the last six months. Companies like Twitter, Pinterest, Paypal, nytimes, IBM (Watson), Spotify, eBay, SoundCloud, Intuit, FormidableLabs, Automattic, Trivago and Microsoft have either fully or partially switched to Jest for their JavaScript testing needs. Thank you very much for giving this project a chance. We would also like to thank everyone who went to conferences and meetups to speak about Jest and to everyone who is writing blog posts about how Jest is or isn't working for them!

New features, changes and fixes in Jest 17 & 18

Jest was initially created more than five years ago and as such an old framework it has accumulated some technical debt. This is why we tend to make breaking changes more often than may seem necessary: We believe it is important to incrementally reduce technical debt to ensure that Jest as a project stays maintainable long-term. We didn't announce Jest 17 in a blog post and if you haven't upgraded to it in the last month you may find the changelog useful.

Breaking: Removed pit in favor of it or test and mockImpl in favor of jest.fn() or mockImplementation .

Breaking: Renamed --jsonOutputFile to --outputFile.

Breaking: Updated testRegex to include test.js and spec.js files.

Breaking: Replaced scriptPreprocessor with the new transform option.

Breaking: The testResultsProcessor function is now required to return the modified results.

Potentially Breaking: Properly resolve snapshotSerializers, setupFiles, transform, testRunner and testResultsProcessor with a resolution algorithm instead of using path.resolve. This mainly means that <rootDir> is no longer needed for these options.

**Added: **pretty-format and jest-editor-support were merged into Jest.

Website: We'll overhaul the website and documentation and add a Jest cheat sheet.

We won't be providing timelines or estimates for these features and we may not actually get to all of these things. If you'd like to help make these things a reality, send us issues and pull requests with your ideas and let's work on improving Jest together in 2017.