Jest Prop Type Error Save

Improves prop-types support in Jest by failing tests on prop-type errors instead of ignoring them

Project README

jest-prop-type-error

Improves prop-types support in Jest by failing tests on prop-type errors instead of ignoring them

prop-types is a library from Facebook that makes it easy to verify that the props passed to a React component is of the correct type. However, it only allows us runtime type checking, which means some failures can slip by into production.

This is possible to solve with Jest by making prop-type errors throw instead of only logging a warning. In this case your tests would run and whenever a wrong prop is passed to a component, the prop-type validation would pick this up and fail the test. Then we would be able to verify that the props that are passed to our components are good compile-time, provided the tests run when we build our production bundle.

That is what this library does!

Read this blog for a more in-depth explanation.

Before

The test shows a warning and passes

After

The test shows an error and fails

Install

yarn add -D jest-prop-type-error

Usage

In order to enable us to detect prop-type errors and fail the test, you need to add the following to your package.json's jest section.

  "setupFiles": [
    "jest-prop-type-error"
  ]

If there is no jest section in your package.json, add one and use that.

Now simply run your tests like usual, and prop-type errors will throw instead of logging a warning!

Usage with Create React App

Create React App doesn't allow the use of the setupFiles directive. To use with create-react-app, simply require 'jest-prop-type-error' in your setupTests.js file after installing the package:

  import 'jest-prop-type-error'

Requirements

Requires node 6 or later

Acknowledgments

Thanks to Stian Didriksen for the idea in his talk about Jest at the ReactJS Oslo Meetup 9th May 2018.

Open Source Agenda is not affiliated with "Jest Prop Type Error" Project. README Source: eliihen/jest-prop-type-error
Stars
41
Open Issues
4
Last Commit
3 years ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating