feat(sync): cn event coverage, bootstrap and outbox sender
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// services/sync/jest.config.cjs —— 单测配置(镜像 services/worker/jest.config.cjs
|
||||
// 约定;P2 Task 3 当前仅有 e2e,单测配置保留供后续 sender 单测落地,
|
||||
// passWithNoTests 让空单测包不挂 turbo test 门)。
|
||||
// · maxWorkers 1:单进程串行(e2e 配置继承后共享同一 MySQL/MinIO,spec 间以
|
||||
// api test/reset*.ts TRUNCATE + 前缀清理隔离,并行会互相清掉对方数据);
|
||||
// · setupFiles 经 test/load-env.ts 载入仓库根 .env(全仓库唯一 env 文件);
|
||||
// · @photo/contracts(ESM)/@photo/db-cn/@photo/db-ov/@photo/storage(CJS)
|
||||
// 经 moduleNameMapper 直指 TS 源码,ts-jest 以 CJS 编译,无需先 build 依赖
|
||||
// 包 dist;contracts 源码 NodeNext 风格 .js 后缀导入 → 映射回 .ts。
|
||||
/** @type {import('jest').Config} */
|
||||
module.exports = {
|
||||
maxWorkers: 1,
|
||||
testEnvironment: 'node',
|
||||
rootDir: '.',
|
||||
setupFiles: ['./test/load-env.ts'],
|
||||
transform: {
|
||||
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.json' }],
|
||||
},
|
||||
moduleNameMapper: {
|
||||
'^@photo/contracts$': '<rootDir>/../../packages/contracts/src/index.ts',
|
||||
'^@photo/db-cn$': '<rootDir>/../../packages/db-cn/src/index.ts',
|
||||
// e2e 直连 ov 库断言副本(PrismaClient from '@photo/db-ov')。
|
||||
'^@photo/db-ov$': '<rootDir>/../../packages/db-ov/src/index.ts',
|
||||
// 驱动 worker PublishService(上传即公开事务)需要 storage 适配器。
|
||||
'^@photo/storage$': '<rootDir>/../../packages/storage/src/index.ts',
|
||||
'^(\\.{1,2}/.*)\\.js$': '$1',
|
||||
},
|
||||
testMatch: ['<rootDir>/src/**/*.spec.ts', '<rootDir>/test/**/*.spec.ts'],
|
||||
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
||||
passWithNoTests: true,
|
||||
};
|
||||
Reference in New Issue
Block a user