Files
knowai/test
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
..

认证架构测试

本目录包含了对新认证架构的全面测试套件验证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请求流程
  • 事件处理
  • 错误处理

运行测试

运行所有认证架构测试

npx ts-node scripts/run-auth-tests.ts

运行特定测试

# 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

运行覆盖率测试

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. 测试确保了兼容性和平滑迁移