This repository has been archived on 2026-09-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
BPOS-TMP-REPO/vitest.config.ts
T
xcsandClaude Opus 5 02e0d1206d fix(loop-engine): S1 次序回归测试改 import 真读数函数,删掉已经漂移的手抄
上一轮判断"读数层四个函数也躲不掉、只能手抄"是错的:rowReadings/missingReadings/
tallyReadings/distinctReadings 是 apps/api/src/app/wiring/engines.ts 的具名导出,测试文件住在
apps/api/src/modules/loop-engine/__tests__/,import 它们是 apps→apps,activities-isolated 与
apps-not-into-activities 两条隔离规则一条都不沾。真正躲不掉的手抄只有六笔配方常量本身(ACT_*,
因为那条边是 apps/* → activities/* 的反方向,才是两条规则真堵住的)。

而且手抄件已经在同一笔提交里漂了:missingReadings 拼缺项名的真身是
gaps.map((f) => f.label ?? f.name)(engines.ts:378),手抄件漏了 label ?? 那半句,连带镜像的
Declared 类型没有 label 字段,这条分支从结构上就复刻不出来。

删掉约 150 行手抄,改成 import 真身。相对路径要爬三层撞了 eslint 的 no-restricted-imports,
新增 @app/* 路径别名(tsconfig.base.json + vitest.config.ts 各一行,与既有 @modules/* / @shared/*
同一种写法)—— 取名核对过不撞 pnpm 工作区包名 @app/api / @app/web(两者从未被当作 TS import
specifier 用过,且 apps/api 的 package.json exports 只暴露了 "." 一个入口)。

变异复验(删手抄之后这条用例仍能精确复现原 bug):旧次序 → RED,Received 恰是评审报告点名的
那个空字符串,与手抄版本逐字相同;新次序 → GREEN。depcruise 单独确认零违规。

文件头注按"测什么、不测什么"重写:次序不倒退已由 steps.test.ts 用精确数组相等钉在真
ASSESSMENT_STEPS 上;这份镜像守的是引擎逐 action 刷新时机,在形状上有代表性即可,不是逐字
等于真配方的承诺。docs/debt.md 补一条,点名唯一还留着的手抄(ACT_* 六个常量)与谁改了 S1
配方形状该顺手核什么。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
2026-08-29 15:15:18 +08:00

33 lines
1.2 KiB
TypeScript

import { defineConfig } from 'vitest/config';
import { fileURLToPath } from 'node:url';
const p = (rel: string) => fileURLToPath(new URL(rel, import.meta.url));
export default defineConfig({
resolve: {
alias: {
'@contracts': p('./packages/contracts/src/index.ts'),
'@sdk': p('./packages/activity-sdk/src/index.ts'),
'@sfeel': p('./packages/sfeel/src/index.ts'),
'@ui': p('./packages/ui-kit/src/index.ts'),
'@utils': p('./packages/utils/src/index.ts'),
// apps/web 内部的两个别名 —— 与 apps/web/vite.config.ts 同口径,
// 否则 web 侧测试碰不到挂了这两个前缀的模块(2026-08-26 subscribe.ts 接入票据后踩到)
'@web-shared': p('./apps/web/src/shared'),
'@features': p('./apps/web/src/features'),
'@testing': p('./tools/it-database.ts'),
'@modules': p('./apps/api/src/modules'),
'@app': p('./apps/api/src/app'),
'@shared': p('./apps/api/src/shared'),
},
},
test: {
include: ['{apps,packages,activities}/**/__tests__/**/*.test.ts', '{apps,packages}/**/*.test.ts'],
testTimeout: 30_000,
hookTimeout: 120_000,
exclude: ['**/node_modules/**', '**/dist/**'],
passWithNoTests: true,
environment: 'node',
},
});