# ✅ 测试完成 - 如何使用

## 🎉 好消息！

所有服务已启动并测试通过：

| 服务 | 地址 | 状态 |
|-----|------|------|
| **后端 API** | http://localhost:8080 | ✅ 运行中 |
| **前端应用** | http://localhost:5175 | ✅ 运行中 |
| **健康检查** | http://localhost:8080/health | ✅ 正常 |

## 🧪 测试方法（3 种方式）

### 方法 1: 独立 HTML 测试页面（最简单⭐）

**直接在浏览器打开：**

```
http://localhost:5175/api-test.html
```

**功能：**
- ✅ 无需登录前端应用
- ✅ 直接测试所有 API
- ✅ 实时查看 JSON 响应
- ✅ 验证 camelCase 字段
- ✅ 一键完整测试

**使用步骤：**
1. 打开上面的URL
2. 点击 "🚀 完整测试" 按钮
3. 观察测试结果和日志
4. 验证所有字段都是 camelCase

### 方法 2: React 应用内测试

**访问主应用：**

```
http://localhost:5175
```

**步骤：**
1. 登录应用（用户名: admin, 密码: admin123）
2. 访问 http://localhost:5175/api-test (React 组件)
3. 点击测试按钮

### 方法 3: cURL 命令行测试

**快速验证：**

```bash
# 1. 健康检查
curl http://localhost:8080/health

# 2. 登录
curl -X POST http://localhost:8080/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin123"}'

# 3. 获取集群列表（需要替换 TOKEN）
curl http://localhost:8080/api/v1/clusters \
  -H "Authorization: Bearer YOUR_TOKEN"
```

**或运行测试脚本：**

```bash
cd /home/mango/workspace/ocdp-go

# API 测试
./scripts/test-api-camelcase.sh

# 前端集成测试
./scripts/test-frontend-integration.sh
```

## 📋 测试清单

### 1. API 响应验证

打开 http://localhost:5175/api-test.html 并验证：

**登录响应应该包含：**
- [ ] `accessToken` (不是 access_token)
- [ ] `refreshToken` (不是 refresh_token)
- [ ] `userId` (不是 user_id)

**集群响应应该包含：**
- [ ] `createdAt` (不是 created_at)
- [ ] `updatedAt` (不是 updated_at)
- [ ] `hasCaData` (不是 has_ca_data)
- [ ] `hasCertData` (不是 has_cert_data)

**创建集群请求应该发送：**
- [ ] `caData` (不是 ca_data)
- [ ] `certData` (不是 cert_data)
- [ ] `keyData` (不是 key_data)

### 2. 前端功能验证

访问 http://localhost:5175：

- [ ] 登录页面可以正常访问
- [ ] 可以成功登录
- [ ] 可以看到集群列表
- [ ] 可以创建新集群
- [ ] 所有操作无错误

## 📸 预期结果示例

### 登录响应（camelCase ✅）

```json
{
  "accessToken": "eyJhbGci...",
  "refreshToken": "eyJhbGci...",
  "userId": "e0b632e8-...",
  "username": "admin"
}
```

### 集群列表响应（camelCase ✅）

```json
[
  {
    "id": "cluster-123",
    "name": "Production Cluster",
    "host": "https://k8s.example.com:6443",
    "hasCaData": true,
    "hasCertData": true,
    "hasKeyData": true,
    "hasToken": false,
    "caData": "••••••••",
    "certData": "••••••••",
    "keyData": "••••••••",
    "createdAt": "2025-11-10T10:00:00Z",
    "updatedAt": "2025-11-10T10:00:00Z"
  }
]
```

## 🎯 快速测试（推荐）

**一行命令测试所有功能：**

```bash
cd /home/mango/workspace/ocdp-go && \
./scripts/test-api-camelcase.sh && \
./scripts/test-frontend-integration.sh && \
echo -e "\n✅ 所有测试通过！\n访问: http://localhost:5175/api-test.html"
```

## 🔧 如果遇到问题

### 问题：页面无法打开

**检查服务是否运行：**

```bash
# 检查后端
curl http://localhost:8080/health

# 检查前端
curl http://localhost:5175

# 如果没有运行，启动服务：
# 后端: cd backend && make run-0
# 前端: cd frontend && npm run dev
```

### 问题：看到 snake_case 字段

**这不应该发生！如果看到，请：**

1. 检查 Go DTO JSON tags：
   ```bash
   grep -r "json:\"ca_data\"" backend/internal/adapter/input/http/dto/
   # 应该没有结果，如果有结果说明没有正确更新
   ```

2. 检查 OpenAPI 规范：
   ```bash
   grep "ca_data:" backend/docs/openapi.yaml
   # 应该没有结果，如果有结果说明规范没有更新
   ```

3. 重新生成前端代码：
   ```bash
   cd frontend && npm run openapi-gen
   ```

4. 重启服务

### 问题：CORS 错误

HTML 测试页面直接访问 API 可能遇到 CORS，这是正常的。请：

1. 使用 React 应用内的测试页面
2. 或检查后端是否允许跨域请求

## 📚 相关文档

| 文档 | 用途 |
|------|------|
| [QUICK-TEST.md](./QUICK-TEST.md) | 快速测试指南 |
| [TEST-GUIDE.md](./TEST-GUIDE.md) | 完整测试指南 |
| [TEST-RESULTS.md](./TEST-RESULTS.md) | 详细测试结果 |
| [IMPLEMENTATION-COMPLETE.md](./IMPLEMENTATION-COMPLETE.md) | 实施总结 |
| [frontend/src/api/README.md](./frontend/src/api/README.md) | API 使用文档 |

## 🎊 成功标志

当你看到以下结果时，说明一切正常：

✅ **HTML 测试页面** - 所有测试通过，显示绿色 ✓  
✅ **JSON 响应** - 所有字段使用 camelCase  
✅ **前端应用** - 无错误，功能正常  
✅ **浏览器控制台** - 无错误信息  
✅ **TypeScript** - 类型提示正常工作  

---

## 🚀 现在就测试！

**最简单的方式：**

1. 打开浏览器
2. 访问: **http://localhost:5175/api-test.html**
3. 点击 **"🚀 完整测试"**
4. 查看结果！

**预期看到：**
```
🧪 开始完整测试流程...

🔐 开始测试登录...
✅ 登录成功!
  ✓ accessToken 字段存在 (camelCase)
  ✓ refreshToken 字段存在 (camelCase)
  ✓ userId 字段存在 (camelCase)

📋 开始获取集群列表...
✅ 获取集群列表成功!
  ✓ createdAt 字段存在 (camelCase)
  ✓ hasCaData 字段存在 (camelCase)

🚀 开始创建集群 (使用 camelCase)...
✅ 创建集群成功!
  ✓ hasCaData 字段存在 (camelCase)
  ✓ createdAt 字段存在 (camelCase)

🎉 完整测试流程完成!
所有 API 调用成功，camelCase 工作正常！
```

---

**当前服务：**
- 🌐 前端: http://localhost:5175
- 🔌 后端: http://localhost:8080
- 🧪 HTML 测试: http://localhost:5175/api-test.html

🎉 **测试愉快！camelCase API 完美工作！**

