Files
knowai/test/README.md
tobegold574 6a81b7bb13
Some checks reported errors
continuous-integration/drone/push Build was killed
feat(image): 新建 knowai-core:1.0.0 镜像并完成推送
- 搭建 api、auth、utils 等逻辑模块
- 通过 tsc、eslint、vitest 测试验证

BREAKING CHANGE: 新镜像分支
2025-11-10 20:20:25 +08:00

132 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 认证架构测试
本目录包含了对新认证架构的全面测试套件验证SessionManager、AccessTokenManager、SessionAuthService、ExtendedApiClient和兼容性处理的功能和安全性。
## 测试结构
```
test/
├── auth/
│ ├── session-manager.test.ts # SessionManager测试
│ ├── access-token-manager.test.ts # AccessTokenManager测试
│ ├── session-auth-service.test.ts # SessionAuthService测试
│ ├── compatibility.test.ts # 兼容性处理测试
│ └── integration.test.ts # 集成测试
├── api/
│ └── extended-client.test.ts # ExtendedApiClient测试
└── setup.ts # 测试环境设置
```
## 测试覆盖范围
### SessionManager测试
- 认证状态检查
- Session信息获取
- Session刷新逻辑
- Session清除
- 用户角色检查
### AccessTokenManager测试
- Token生成
- Token获取和缓存
- Token刷新
- Token清除
- 过期Token处理
### SessionAuthService测试
- 登录/注册/登出功能
- 请求/响应拦截器
- 事件处理
- 错误处理
### ExtendedApiClient测试
- 带Access Token的请求
- 各种HTTP方法支持
- Token注入
- 错误处理
### 兼容性处理测试
- 认证模式切换
- Token到Session的迁移
- 混合认证模式
### 集成测试
- 端到端认证流程
- API请求流程
- 事件处理
- 错误处理
## 运行测试
### 运行所有认证架构测试
```bash
npx ts-node scripts/run-auth-tests.ts
```
### 运行特定测试
```bash
# SessionManager测试
npx vitest run test/auth/session-manager.test.ts
# AccessTokenManager测试
npx vitest run test/auth/access-token-manager.test.ts
# SessionAuthService测试
npx vitest run test/auth/session-auth-service.test.ts
# ExtendedApiClient测试
npx vitest run test/api/extended-client.test.ts
# 兼容性测试
npx vitest run test/auth/compatibility.test.ts
# 集成测试
npx vitest run test/auth/integration.test.ts
```
### 运行覆盖率测试
```bash
npx ts-node scripts/run-auth-tests.ts --coverage
```
## 测试环境
测试使用Vitest框架配置了以下环境
- 测试环境jsdom
- 全局设置:启用
- 超时时间10秒
- 覆盖率提供者v8
## 模拟对象
测试中使用了以下模拟对象:
- ApiClient模拟HTTP客户端
- SessionManager模拟Session管理器
- AccessTokenManager模拟Access Token管理器
- AuthEventManager模拟认证事件管理器
- TokenManager模拟Token管理器用于兼容性测试
## 测试数据
测试使用以下模拟数据:
- 用户信息
- Session信息
- Access Token信息
- API响应数据
## 断言
测试使用以下断言:
- 功能正确性
- 错误处理
- 事件触发
- 数据转换
- 安全性检查
## 注意事项
1. 确保在运行测试前已安装所有依赖
2. 测试使用模拟数据,不会影响实际系统
3. 测试覆盖了主要功能和边界情况
4. 测试验证了安全性和错误处理
5. 测试确保了兼容性和平滑迁移