yangjianbo
bb5a5dd65e
test: 完善自动化测试体系(7个模块,73个任务)
系统性地修复、补充和强化项目的自动化测试能力:
1. 测试基础设施修复
- 修复 stubConcurrencyCache 缺失方法和构造函数参数不匹配
- 创建 testutil 共享包(stubs.go, fixtures.go, httptest.go)
- 为所有 Stub 添加编译期接口断言
2. 中间件测试补充
- 新增 JWT 认证中间件测试(有效/过期/篡改/缺失 Token)
- 补充 rate_limiter 和 recovery 中间件测试场景
3. 网关核心路径测试
- 新增账户选择、等待队列、流式响应、并发控制、计费、Claude Code 检测测试
- 覆盖负载均衡、粘性会话、SSE 转发、槽位管理等关键逻辑
4. 前端测试体系(11个新测试文件,163个测试用例)
- Pinia stores: auth, app, subscriptions
- API client: 请求拦截器、响应拦截器、401 刷新
- Router guards: 认证重定向、管理员权限、简易模式限制
- Composables: useForm, useTableLoader, useClipboard
- Components: LoginForm, ApiKeyCreate, Dashboard
5. CI/CD 流水线重构
- 重构 backend-ci.yml 为统一的 ci.yml
- 前后端 4 个并行 Job + Postgres/Redis services
- Race 检测、覆盖率收集与门禁、Docker 构建验证
6. E2E 自动化测试
- e2e-test.sh 自动化脚本(Docker 启动→健康检查→测试→清理)
- 用户注册→登录→API Key→网关调用完整链路测试
- Mock 模式和 API Key 脱敏支持
7. 修复预存问题
- tlsfingerprint dialer_test.go 缺失 build tag 导致集成测试编译冲突
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:05:39 +08:00
..
2026-02-02 22:13:50 +08:00
2026-02-06 09:59:15 +08:00
2026-02-02 22:13:50 +08:00
2026-01-04 19:28:20 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-01-03 06:37:08 -08:00
2026-01-03 06:37:08 -08:00
2026-02-02 22:13:50 +08:00
2026-02-07 19:46:42 +08:00
2026-02-07 20:18:07 +08:00
2026-02-07 19:46:42 +08:00
2026-02-08 12:05:39 +08:00
2026-02-07 19:46:42 +08:00
2026-02-07 22:13:45 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-01-04 21:06:12 +08:00
2026-02-02 22:13:50 +08:00
2026-01-03 06:32:51 -08:00
2026-02-07 22:13:45 +08:00
2026-02-02 22:13:50 +08:00
2026-01-11 15:00:16 +08:00
2026-01-11 15:00:16 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-05 21:52:54 +08:00
2026-02-05 21:52:54 +08:00
2026-01-04 19:28:20 +08:00
2026-02-07 12:31:10 +08:00
2026-02-07 12:31:10 +08:00
2026-02-07 12:31:10 +08:00
2026-02-02 22:13:50 +08:00
2026-01-08 23:47:29 +08:00
2026-01-14 15:55:44 +08:00
2026-01-14 15:55:44 +08:00
2026-01-15 18:27:06 +08:00
2026-02-05 20:47:15 +08:00
2026-01-07 23:15:20 +08:00
2026-02-07 12:31:10 +08:00
2026-01-10 09:39:02 +08:00
2026-02-07 20:18:07 +08:00
2026-01-04 11:43:58 +08:00
2026-01-04 21:06:12 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-01-03 06:36:35 -08:00
2026-01-12 14:19:06 +08:00
2026-01-05 14:07:33 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-01-15 15:14:44 +08:00
2026-01-12 17:06:12 +08:00
2026-01-11 23:49:03 +08:00
2026-01-09 20:52:57 +08:00
2026-01-11 23:57:20 +08:00
2026-01-23 19:39:48 +08:00
2026-01-13 22:49:26 -08:00
2026-01-12 14:17:42 +08:00
2026-01-11 23:57:20 +08:00
2026-01-24 01:14:44 +08:00
2026-01-09 20:52:57 +08:00
2026-02-02 22:13:50 +08:00
2026-01-07 23:15:20 +08:00
2026-01-07 23:15:20 +08:00
2026-02-07 19:46:42 +08:00
2026-01-15 15:14:44 +08:00
2026-02-03 17:12:27 +08:00
2026-02-03 17:12:27 +08:00
2026-02-05 18:40:49 +08:00
2026-02-03 00:16:10 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-05 12:42:54 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-01-12 15:46:55 +08:00
2026-02-02 22:13:50 +08:00
2026-02-05 22:36:17 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-01-04 19:28:20 +08:00
2026-01-31 21:46:28 +08:00
2026-01-03 06:34:00 -08:00
2026-01-11 21:54:52 -08:00
2026-02-02 22:13:50 +08:00
2026-01-03 06:36:35 -08:00
2026-01-03 10:52:24 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-07 19:46:42 +08:00
2026-02-07 19:46:42 +08:00
2026-02-07 20:18:07 +08:00
2026-02-05 16:05:42 +08:00
2026-01-05 19:03:54 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-02 22:13:50 +08:00
2026-02-06 06:56:23 +08:00