Skip to content

A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript.

License

Notifications You must be signed in to change notification settings

kulshekhar/ts-jest

Repository files navigation

ts-jest

Build Status

Note: This is currently just a hack and might not be suitable for all setups.

Table of Contents

Usage

Note: This repo uses code from the source-map-support package to show errors with mapped locations.

To use this in your project, run:

npm install --save-dev ts-jest

Modify your project's package.json so that the jest section looks something like:

{
  "jest": {
    "scriptPreprocessor": "<rootDir>/node_modules/ts-jest/preprocessor.js",
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ]
  }
}

This setup should allow you to write Jest tests in Typescript and be able to locate errors without any additional gymnastics.

Options

By default this package will try to locate tsconfig.json and use its compiler options for your .ts and .tsx files.
But you are able to override this behaviour and provide another path to your config for TypeScript by using __TS_CONFIG__ option in globals for jest:

{
  "jest": {
    "globals": {
      "__TS_CONFIG__": "my-tsconfig.json"
    }
  }
}

Or even declare options for tsc instead of using separate config, like this:

{
  "jest": {
    "globals": {
      "__TS_CONFIG__": {
        "module": "commonjs",
        "jsx": "react"
      }
    }
  }
}

For all available options see TypeScript docs.

How to Contribute

If you have any suggestions/pull requests to turn this into a useful package, just open an issue and I'll be happy to work with you to improve this.

Quickstart to run tests (only if you're working on this package)

git clone https://github.com/kulshekhar/ts-jest
cd ts-jest
npm install
npm test

Note: On Windows machines you have to run test command with administrator privileges, because we have to create symlink for ts-jest in node_modules in order to correctly run integration tests.

License

Copyright (c) Kulshekhar Kabra.
This source code is licensed under the MIT license.