Files
Scoreboard/web/package.json
T
AskaEth db94d9c119 test(web): 补两类守卫,专抓「组件 setup 期抛异常」这类既有测试抓不到的问题
背景:基础数据「运动员」页整块空白的根因是 setup 期 TDZ(watch 注册时同步求值,
间接引用到后面才声明的 const),vue-tsc 与 449 条单元测试都没抓到——组件从不真正挂载。

1) scripts/check-declaration-order.mjs + src/shared/tests/declaration-order.test.ts
   静态检查:从 watch/watchEffect 的源出发沿 const 依赖链做传递闭包,
   任何声明行晚于求值行的 const 即判违规。已随既有测试命令运行(纯 node,无需浏览器)。
   变异验证:把 AthletesSection 退回 ab7662b 的写法 → 精确报
   「AthletesSection.vue:84 会求值到 filtered,但它声明在第 272 行」。

2) scripts/smoke-admin.mjs(pnpm smoke)
   真 Chromium 冒烟:14 个管理端路由 + 7 个基础数据分区 + 大屏页,
   任何 console 错误或未捕获异常即失败并给出路由名。
   变异验证:同一份代码下修复版通过、退回版报
   「/base-data › 运动员 ← ReferenceError: Cannot access 'Y' before initialization」。
   playwright 不是本仓库依赖(离线开发装不上),脚本缺依赖时会明确报错退出而不是假装通过。
2026-09-11 22:58:19 +08:00

25 lines
519 B
JSON

{
"name": "scoreboard-web",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
"smoke": "node scripts/smoke-admin.mjs"
},
"dependencies": {
"pinia": "^4.0.3",
"vue": "^3.5.42",
"vue-router": "^5.3.1"
},
"devDependencies": {
"@types/node": "^26.5.0",
"@vitejs/plugin-vue": "^6.0.8",
"typescript": "^5.9.3",
"vite": "^8.2.2",
"vue-tsc": "^3.3.11"
}
}