Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/infinitered/jest-preset-ignite
Glues together TypeScript, React Native, and Jest.
https://github.com/infinitered/jest-preset-ignite
jest react-native typescript
Last synced: 3 months ago
JSON representation
Glues together TypeScript, React Native, and Jest.
- Host: GitHub
- URL: https://github.com/infinitered/jest-preset-ignite
- Owner: infinitered
- Created: 2018-03-08T15:46:05.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-30T02:24:23.000Z (over 5 years ago)
- Last Synced: 2024-08-08T15:48:19.745Z (6 months ago)
- Topics: jest, react-native, typescript
- Language: JavaScript
- Size: 16.6 KB
- Stars: 5
- Watchers: 12
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jest-preset-ignite
Converts JS into TS within a react-native project.
## Version Supported
Version 0.6 of this library supports:
| Library | Version |
| ------------ | ---------- |
| Jest | 23.6.x |
| React Native | 0.56, 0.57 |
| TypeScript | 3.x |
| Node JS | 8+ |Version 0.5 of this library supports the following configuration:
| Library | Version |
| ------------ | ---------------- |
| Jest | 22.x |
| React Native | 0.53, 0.54, 0.55 |
| TypeScript | 2.7.x - 2.9.x |
| Node JS | 8+ |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.
```json
"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!
```js
{
// 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