2 Commits
Author SHA1 Message Date
yml 965832c3cb 前端测试基建: vitest.config + jsdom + test script, 3 个死 spec 复活
现状: vitest 已装, 3 个 spec 已存在 (listings composables, 14 用例), 但跑不起来——package.json 无 test script, 无 vitest.config, @/ 别名在测试环境不通 (Cannot find package '@/...')。

修复:
- 新增 vitest.config.ts: jsdom 环境 (提供 window/document/navigator, 让 monitor.ts 等浏览器模块可加载) + @ 别名 (与 vite.config.ts 同口径) + globals + v8 coverage 配置
- package.json 加 test / test:watch / test:coverage script
- 装 jsdom devDependency
- check.sh 前端门禁加 npm run test 步骤 (受 --skip-tests 控制, 与后端测试一致)

验证: npm run test 3 spec 全过 (14 用例); check.sh --skip-backend 全绿 (check + test + build)。

之前 "有测试实际跑不起来" 的债务清掉。后续 composable/api 层测试可直接 npm run test。
2026-06-14 18:13:06 +08:00
yml 64f7ed3753 加部署前代码门禁: scripts/check.sh + deploy-prod.sh 接入
单人维护 + Gitea 无 runner, CI 文件无执行环境。改用部署时刻门禁: deploy-prod.sh 构建镜像前在本地调 check.sh 跑全量检查, 失败即中止部署。

scripts/check.sh (新增):
- 后端: go vet + go build + go test (串行 -p 1 避免 SQLite 并发)
- 前端: npm run check (prettier + eslint --max-warnings=0 + vue-tsc) + npm run build
- 支持 --skip-backend/--skip-frontend/--skip-tests 局部调试
- 每步报耗时, 任一失败退出非零

deploy-prod.sh 接入:
- 构建镜像前 (NO_BUILD=0) 自动调 check.sh, 失败中止部署
- 本地缺 go/npm 时跳过并告警 (部署机可能只有 docker), 不硬失败
- --skip-check 显式跳过 (不推荐)

README 补 "代码门禁" 章节。

验证: 全量 check.sh 跑通 (~46s, 5 步全绿); 临时注入 lint 错误确认能拦住。
2026-06-14 16:30:58 +08:00