To fix the "Cannot find name ‘it’" error in Jest and TypeScript, we add the ts-jest
transform to our test files by adding the entry in jest.config.js
.
We install ts-jest
by running
npm install jest @types/jest ts-jest
For instance, we write
module.exports = {
roots: ["<rootDir>/src"],
transform: {
"^.+\\.tsx?$": "ts-jest",
},
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
};
in jest.config.ts
to transform "^.+\\.tsx?$"
files with ts-jest
.
Then in tsconfig.json
, we add
{
"compilerOptions": {
//...
"types": ["reflect-metadata", "jest"],
"typeRoots": ["./types", "./node_modules/@types"]
//...
},
"exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"],
"include": ["./src/**/*.tsx", "./src/**/*.ts"]
}
to add the 'jest'
type to the types
option.
Now the TypeScript compiler should be aware of Jest types.