Jest + Typescript minus TS-Jest

ts-jest is a popular package when you try to use typescript with jest.

But one issue that is bugging me recently is, that the uncovered lines stat is not correct, my test coverage dropped by 10+%.

After googling, folks had the same issue, but nothing useful come up, no solution

After some troubleshooting, I found out that it was ts-jest that causing the issue

so I decided to use babel for compilation instead

install dependencies

npm i -D @babel/preset-env @babel/preset-typescript typescript jest

setup npm script

"scripts": {
"test": "jest",
}

create a jest.config.js

/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */module.exports = {
testEnvironment: 'node',
roots: ['<rootDir>/src'],
testMatch: ['**/__tests__/**/*.+(ts|js)', '**/?(*.)+(spec|test).+(ts|js)'],
transform: {
'^.+\\.(js|ts)$': 'babel-jest',
},
moduleDirectories: ['node_modules', 'src'],
collectCoverage: true,
collectCoverageFrom: ['**/*.{js,ts}', '!**/*.d.ts'],
}

create a babel.config.js

module.exports = {
presets: [
'@babel/preset-typescript',
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
}

you don’t need to install babel-jest, it comes with jest

finally npm test and boom, your 100% test coverage is back.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Acid Coder

Typescript Zombie. Youtube Pikachu On Acid. (Unrelated to programming but by watching it you become a good developer overnight)