2026-09-17 17:04:12 +08:00
|
|
|
|
/** @type {import('jest').Config} */
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
|
testEnvironment: 'node',
|
|
|
|
|
|
// 包为 ESM("type": "module"),Jest 以 CJS 运行测试:
|
|
|
|
|
|
// 用内联 tsconfig 覆盖 module/moduleResolution(NodeNext 会按包类型产出 ESM)。
|
|
|
|
|
|
// Task 6 的类型测试沿用此配置。
|
|
|
|
|
|
transform: {
|
|
|
|
|
|
'^.+\\.tsx?$': [
|
|
|
|
|
|
'ts-jest',
|
|
|
|
|
|
{
|
|
|
|
|
|
tsconfig: {
|
|
|
|
|
|
module: 'commonjs',
|
|
|
|
|
|
moduleResolution: 'node10',
|
|
|
|
|
|
target: 'es2022',
|
|
|
|
|
|
strict: true,
|
|
|
|
|
|
esModuleInterop: true,
|
2026-09-18 15:21:41 +08:00
|
|
|
|
// 覆盖包级 tsconfig 的 types 限制(其值仅供 src 构建侧收敛 node 类型):
|
|
|
|
|
|
// 测试编译需要 jest 全局与 node 类型(internal-sync 的 Buffer/测试时钟)。
|
|
|
|
|
|
types: ['node', 'jest'],
|
2026-09-17 17:04:12 +08:00
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
// TS 源码使用 NodeNext 风格的 .js 扩展导入,运行时映射回 .ts。
|
|
|
|
|
|
moduleNameMapper: {
|
|
|
|
|
|
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
|
|
|
|
},
|
|
|
|
|
|
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
|
|
|
|
|
};
|