0.6.1 • Published 6 years ago

jest-preset-ignite v0.6.1

Weekly downloads
632
License
MIT
Repository
github
Last release
6 years ago

jest-preset-ignite

Converts JS into TS within a react-native project.

Version Supported

Version 0.6 of this library supports:

LibraryVersion
Jest23.6.x
React Native0.56, 0.57
TypeScript3.x
Node JS8+

Version 0.5 of this library supports the following configuration:

LibraryVersion
Jest22.x
React Native0.53, 0.54, 0.55
TypeScript2.7.x - 2.9.x
Node JS8+

It may work on other version, but I haven't tested this.

Installing

In a project that contains the aforementioned libraries and versions, run this bad boy:

yarn add jest-preset-ignite --dev

Then open your package.json and change the jest section to use this preset.

  "jest": {
    "preset": "jest-preset-ignite"
  }

You will also need a test/setup.ts file. This will be run first when the test environment boots up. You can use this for any custom mocks or setup.

TypeScript Compiler Settings

This will use it's own "tsconfig.json" and not the one from your project.

Here's a brief explanation on the compiler settings used. This WILL be on the test!

{
  // We are able to target something higher because whatever we emit
  // will still be run through ye olde babel.
  target: "es2017",

  // We are running this within node, so commonjs is our only option (for now!)
  module: "commonjs",

  // I believe that `react-native` is more for historical reasons. This works.
  jsx: "react",

  // This is not something we can escape at the moment unfortunately. Some libraries
  // (such as react-native-i18n, moment, validate.js) have their typings already using
  // the broken way.
  allowSyntheticDefaultImports: true,

  // Related to the option above, and new in TypeScript 2.7, this furthers support for the
  // broken way to import default modules.
  esModuleInterop: true,

  // Let TypeScript's compiler know we'll be needing source maps.
  sourceMap: true
}

Prior Art

Thanks to https://github.com/petester42/jest-preset-typescript-react-native for showing me how this is done.

That project appears to be no longer active, so this picks up from there.

License

MIT

0.6.1

6 years ago

0.6.0

6 years ago

0.5.0

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago