Jest + Typescript minus TS-Jest

Acid Coder
1 min readJun 27, 2022

--

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.

--

--

Acid Coder
Acid Coder

Written by Acid Coder

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

No responses yet