# 心动等级测试工具使用说明

这个测试工具可以帮助你模拟IM中的心动等级升降通知，用于测试等级变化的UI效果和数据更新。

## 功能特性

- ✅ 模拟心动等级升级通知
- ✅ 模拟心动等级降级通知
- ✅ 支持所有等级 (Level 1-10)
- ✅ 自动更新QueryClient中的数据
- ✅ 支持自定义心动值和标题
- ✅ 快速测试多个等级变化

## 使用方法

### 基本用法

在浏览器控制台中使用以下命令：

```javascript
// 测试升级到Level 3 (心动)
window.testHeartbeatLevel.upgrade(123, window.testHeartbeatLevel.levels.Level3)

// 测试降级到Level 1 (初识)
window.testHeartbeatLevel.downgrade(123, window.testHeartbeatLevel.levels.Level1)
```

### 高级用法

```javascript
// 自定义心动值的升级测试
window.testHeartbeatLevel.upgrade(123, window.testHeartbeatLevel.levels.Level5, 1200)

// 自定义心动值的降级测试
window.testHeartbeatLevel.downgrade(123, window.testHeartbeatLevel.levels.Level2, 150)

// 快速测试多个等级变化 (每2秒一次)
window.testHeartbeatLevel.quickTest(123)
```

### 完全自定义

```javascript
// 使用simulate方法进行完全自定义
window.testHeartbeatLevel.simulate({
  aiId: 123,
  newLevel: window.testHeartbeatLevel.levels.Level4,
  newHeartbeatVal: 800,
  isUpgrade: true,
  title: '🎉 自定义升级消息！',
})
```

## 心动等级对照表

| 等级 | 名称     | 起始心动值 | 枚举值  |
| ---- | -------- | ---------- | ------- |
| 1    | 初识     | 0          | Level1  |
| 2    | 好感     | 100        | Level2  |
| 3    | 心动     | 300        | Level3  |
| 4    | 暧昧     | 600        | Level4  |
| 5    | 恋人     | 1000       | Level5  |
| 6    | 热恋     | 1500       | Level6  |
| 7    | 深爱     | 2100       | Level7  |
| 8    | 挚爱     | 2800       | Level8  |
| 9    | 永恒     | 3600       | Level9  |
| 10   | 命中注定 | 4500       | Level10 |

## API 参考

### window.testHeartbeatLevel.upgrade(aiId, level, heartbeatVal?)

测试心动等级升级

**参数:**

- `aiId` (number): AI的ID
- `level` (HeartbeatLevel): 目标等级
- `heartbeatVal` (number, 可选): 自定义心动值，默认为等级起始值+50

### window.testHeartbeatLevel.downgrade(aiId, level, heartbeatVal?)

测试心动等级降级

**参数:**

- `aiId` (number): AI的ID
- `level` (HeartbeatLevel): 目标等级
- `heartbeatVal` (number, 可选): 自定义心动值，默认为等级起始值+20

### window.testHeartbeatLevel.quickTest(aiId)

快速测试多个等级变化，每2秒触发一次升级或降级

**参数:**

- `aiId` (number): AI的ID

### window.testHeartbeatLevel.simulate(params)

完全自定义的模拟测试

**参数:**

- `params.aiId` (number): AI的ID
- `params.newLevel` (HeartbeatLevel): 新等级
- `params.newHeartbeatVal` (number): 新心动值
- `params.isUpgrade` (boolean, 可选): 是否为升级，默认true
- `params.title` (string, 可选): 自定义标题

### window.testHeartbeatLevel.levels

包含所有可用心动等级的枚举对象

## 注意事项

1. **仅在开发环境可用**: 这个工具只在 `NODE_ENV=development` 时加载
2. **需要在聊天页面测试**: 确保你在对应AI的聊天页面进行测试
3. **aiId参数**: 使用正确的AI ID，可以从URL或者开发者工具中获取
4. **数据持久性**: 测试数据会更新到QueryClient中，刷新页面后会重置

## 实际使用示例

假设你正在测试AI ID为456的角色：

```javascript
// 1. 先查看当前可用的等级
console.log(window.testHeartbeatLevel.levels)

// 2. 测试升级到恋人等级
window.testHeartbeatLevel.upgrade(456, window.testHeartbeatLevel.levels.Level5)

// 3. 等待几秒观察UI变化，然后测试降级
setTimeout(() => {
  window.testHeartbeatLevel.downgrade(456, window.testHeartbeatLevel.levels.Level3)
}, 5000)

// 4. 或者直接运行快速测试看所有效果
window.testHeartbeatLevel.quickTest(456)
```

## 故障排除

**Q: 控制台提示 `window.testHeartbeatLevel is undefined`**  
A: 确保你在开发环境中，并且页面已完全加载

**Q: 测试后UI没有变化**  
A: 检查aiId是否正确，确保你在对应的聊天页面

**Q: 想要重置数据**  
A: 刷新页面即可重置所有测试数据
