# 前端测试补充计划

## 测试补充原则
1. 按依赖层级从底层到上层进行测试
2. 每个模块测试通过后再进行下一个
3. 相关联模块全部测试通过后提交

## 测试补充顺序

### 阶段 1: Lib 层基础工具测试
**优先级: 高** - 这是其他模块依赖的基础

| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 1.1 | lib/config.ts | lib/config.test.ts | ✓ 已测 | 无 |
| 1.2 | lib/device-fingerprint.ts | lib/device-fingerprint.test.ts | ✓ 已测 | 无 |
| 1.3 | lib/errors/index.ts | lib/errors/index.test.ts | ✓ 已测 | 无 |
| 1.4 | lib/storage/index.ts | lib/storage/index.test.ts | ✓ 已测 | 无 |
| 1.5 | lib/hooks/useBreadcrumbs.ts | lib/hooks/useBreadcrumbs.test.ts | ✓ 已测 | 无 |
| 1.6 | lib/http/index.ts | lib/http/index.test.ts | ✓ 已测 | lib/storage |

**阶段提交点**: 所有 lib 测试通过后提交一次

---

### 阶段 2: Services 层 API 服务测试
**优先级: 高** - 页面组件依赖的服务层

| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 2.1 | services/devices.ts | services/devices.test.ts | ✓ 已测 | lib/http |
| 2.2 | services/login-logs.ts | services/login-logs.test.ts | ✓ 已测 | lib/http |
| 2.3 | services/operation-logs.ts | services/operation-logs.test.ts | ✓ 已测 | lib/http |
| 2.4 | services/permissions.ts | services/permissions.test.ts | ✓ 已测 | lib/http |
| 2.5 | services/profile.ts | services/profile.test.ts | ✓ 已测 | lib/http |
| 2.6 | services/roles.ts | services/roles.test.ts | ✓ 已测 | lib/http |
| 2.7 | services/settings.ts | services/settings.test.ts | ✓ 已测 | lib/http |
| 2.8 | services/stats.ts | services/stats.test.ts | ✓ 已测 | lib/http |
| 2.9 | services/import-export.ts | services/import-export.test.ts | ✓ 已测 | lib/http |

**阶段提交点**: 所有 services 测试通过后提交一次

---

### 阶段 3: Components 层组件测试
**优先级: 中** - 可复用的 UI 组件

#### 3.1 通用组件
| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 3.1.1 | components/common/PageHeader/PageHeader.tsx | PageHeader.test.tsx | 待测 | 无 |
| 3.1.2 | components/common/ErrorBoundary/index.ts | ErrorBoundary.test.tsx | ✓ 已测(已有) | 无 |

#### 3.2 反馈组件
| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 3.2.1 | components/feedback/PageState/index.ts | PageState.test.tsx | ✓ 已测(已有) | 无 |

#### 3.3 路由守卫组件
| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 3.3.1 | components/guards/RequireAdmin.tsx | RequireAdmin.test.tsx | ✓ 已测(已有) | lib/auth |
| 3.3.2 | components/guards/RequireAuth.tsx | RequireAuth.test.tsx | ✓ 已测(已有) | lib/auth |

#### 3.4 布局组件
| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 3.4.1 | components/layout/PageLayout/ContentCard.tsx | ContentCard.test.tsx | ✓ 已测 | 无 |
| 3.4.2 | components/layout/PageLayout/FilterCard.tsx | FilterCard.test.tsx | ✓ 已测 | 无 |
| 3.4.3 | components/layout/PageLayout/TableCard.tsx | TableCard.test.tsx | ✓ 已测 | 无 |
| 3.4.4 | components/layout/PageLayout/TreeCard.tsx | TreeCard.test.tsx | ✓ 已测 | 无 |
| 3.4.5 | components/layout/PageLayout/PageLayout.tsx | PageLayout.test.tsx | ✓ 已测 | 以上组件 |

**阶段提交点**: 所有 components 测试通过后提交一次

---

### 阶段 4: Layouts 层布局测试
**优先级: 中**

| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 4.1 | layouts/AuthLayout/AuthLayout.tsx | AuthLayout.test.tsx | ✓ 已测 | 无 |

**阶段提交点**: layouts 测试通过后提交一次

---

### 阶段 5: 页面细节组件测试
**优先级: 低** - 页面级组件已有主要测试

| 序号 | 文件 | 测试文件 | 状态 | 依赖 |
|------|------|----------|------|------|
| 5.1 | pages/admin/LoginLogsPage/LoginLogDetailDrawer.tsx | LoginLogDetailDrawer.test.tsx | ✓ 已测 | services/login-logs |
| 5.2 | pages/admin/OperationLogsPage/OperationLogDetailDrawer.tsx | OperationLogDetailDrawer.test.tsx | ✓ 已测 | services/operation-logs |
| 5.3 | pages/admin/ProfileSecurityPage/ProfileSecurityPage.tsx | 已有测试 | 检查覆盖率 | 多个 services |

**阶段提交点**: 最终提交

---

## 执行流程

对于每个测试文件：
1. 阅读源文件，理解功能和接口
2. 创建测试文件，编写测试用例
3. 运行测试确保通过
4. 检查相关联模块测试是否仍然通过
5. 阶段完成后提交

## 当前进度

- [x] 阶段 1: Lib 层测试 ✓ (已提交)
- [x] 阶段 2: Services 层测试 ✓ (已提交)
- [x] 阶段 3: Components 层测试 ✓ (已提交)
- [x] 阶段 4: Layouts 层测试 ✓ (已提交)
- [x] 阶段 5: 页面细节组件测试 ✓ (已提交)

**总测试数**: 518 个测试，82 个测试文件，全部通过
