P0-3真bug:路由守卫放行register+Playwright真机验证全绿 / 文档最终数字510+514

This commit is contained in:
seagull
2026-09-12 02:25:50 +08:00
parent 67540e8d30
commit 3809774a6f
2 changed files with 28 additions and 1 deletions
+27
View File
@@ -63,6 +63,33 @@ seed_demo/demo 幂等兜底、两个测试侧 membership 修补、exceptions 去
4. **日志清理**:删 `backend/g8060/g8070/g8080/g8090.log`(P0-4 现场 g8070 已无保留价值,
`*.log` 已在 `.gitignore`)。
## 本轮新增(2026-09-12 续-2 · 诚实性修复 + P0-3 真 bug)
1. **P0-3 真 bug**:`frontend/src/router/index.js` 的 `PUBLIC_ROUTES`
只放行 `login/storefront`,匿名进 `/register` 被守卫踢回 `/login`——
注册页存在但不可达,闭环是断的。修法:`PUBLIC_ROUTES` 加 `register`。
Playwright 真机(dev :18099 + 新 build):
空表单提交被拦(4 条必填标红)/ 非法值被拦(手机号格式/密码至少8位/
两次密码不一致)/ 合法值 201 并跳 `#/dashboard` / 0 console errors。
2. **P0-5 缺头**:`check_apikey_rate_limit` 抛 `Throttled` 未传 `wait`,
DRF 无 `wait` 不回 `Retry-After`(`views.py::exception_handler` 实测)。
修法:`wait=APIKEY_WINDOW_SECONDS` + 回归断言 `Retry-After in 429`。
3. **P1-3 定时接线**:`apps/core/tasks.py`(新建,`purge_expired_audit_logs`
+ dramatiq actor)+ `config/dramatiq.py` 每日 04:00 cron +
`test_purge_actor_registered_and_runs`。此前 command 存在但无人调度。
4. **P1-2 Channel 补校验**:`Channel.vue` 的 `el-form` 挂了不存在的
`formRef/rules`(模板引用了未定义的变量,保存直调 API)。
补 `rules`(平台/店铺ID/店铺名必填,App Key 留空合法)+ 保存前 validate。
5. **文档数字**:README PG 口径 `499` → `514`(实跑)。
## 最终验证(2026-09-12)
- 后端 SQLite:**510 passed / 4 skipped**(PG 专用并发用例)
- 后端 PostgreSQL 5433:**514 passed / 0 skipped**
- 前端:`npm run build` ✅ 6.50s;`npm test` ✅ 11/11
- `manage.py check` 0 issues;`makemigrations --check` No changes
- Playwright Register 真机:空/非法被拦、合法 201 跳 dashboard、0 console errors
## 遗留(诚实记录)
- §附录 A #4–#10(库存流水/预警规则/打印模板/自定义报表/库存大盘/科目管理/价格等级页)
+1 -1
View File
@@ -33,7 +33,7 @@ const routes = [
const router = createRouter({ history: createWebHashHistory(), routes })
const PUBLIC_ROUTES = new Set(['login', 'storefront'])
const PUBLIC_ROUTES = new Set(['login', 'register', 'storefront'])
router.beforeEach((to) => {
const token = localStorage.getItem('token')