Paths mapping
If you use "baseUrl" and "paths" options in your tsconfig
file, you should make sure the "moduleNameMapper" option in your Jest config is setup accordingly.
ts-jest
provides a helper to transform the mapping from tsconfig
to Jest config format, but it needs the .js
version of the config file.
Example
TypeScript config
With the below config in your tsconfig
:
// tsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@App/*": ["src/*"],
"lib/*": ["common/*"]
}
}
}
Jest config (without helper)
- JavaScript
- TypeScript
- JSON
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
// [...]
moduleNameMapper: {
'^@App/(.*)$': '<rootDir>/src/$1',
'^lib/(.*)$': '<rootDir>/common/$1',
},
}
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
// [...]
moduleNameMapper: {
'^@App/(.*)$': '<rootDir>/src/$1',
'^lib/(.*)$': '<rootDir>/common/$1',
},
}
export default jestConfig
{
// [...]
"jest": {
"moduleNameMapper": {
"^@App/(.*)$": "<rootDir>/src/$1",
"^lib/(.*)$": "<rootDir>/common/$1"
}
}
}
Jest config (with helper)
- JavaScript
- TypeScript
const { pathsToModuleNameMapper } = require('ts-jest')
// In the following statement, replace `./tsconfig` with the path to your `tsconfig` file
// which contains the path mapping (ie the `compilerOptions.paths` option):
const { compilerOptions } = require('./tsconfig')
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
// [...]
roots: ['<rootDir>'],
modulePaths: [compilerOptions.baseUrl], // <-- This will be set to 'baseUrl' value
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths /*, { prefix: '<rootDir>/' } */),
}
import { pathsToModuleNameMapper } from 'ts-jest'
// In the following statement, replace `./tsconfig` with the path to your `tsconfig` file
// which contains the path mapping (ie the `compilerOptions.paths` option):
import { compilerOptions } from './tsconfig'
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
// [...]
roots: ['<rootDir>'],
modulePaths: [compilerOptions.baseUrl], // <-- This will be set to 'baseUrl' value
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths /*, { prefix: '<rootDir>/' } */),
}
export default jestConfig