# 房内猜拳本地真实 IM 测试

测试文件：`tests/smoke/room_rps_real_im_flow_test.go`

## 作用

- 用本地 gateway 真实 HTTP 接口跑房内猜拳流程。
- 通过 `/api/v1/auth/account/quick-create` 自动创建发起人和应战人。
- 用真实腾讯 IM REST 确保房间群、导入两个账号、发送一条 `TIMCustomElem` 探针消息。
- 不使用 fake client，不伪造 access token，不伪造 IM 成功。

## 前置

- 本地 gateway 地址默认：`http://127.0.0.1:13000/api/v1`
- 本地 gateway、game-service、user-service 已启动。
- game-service 启动时需要带 `TENCENT_IM_SDK_APP_ID`、`TENCENT_IM_SECRET_KEY`、`TENCENT_IM_ADMIN_IDENTIFIER`，这样创建和应战接口会真实投递 IM。
- 不传 `ROOM_RPS_ROOM_ID` 时，测试会自动创建 `room-rps-real-im-时间戳` 临时群。
- 不传 `ROOM_RPS_GIFT_ID` 时，使用默认已开启礼物 `10001`。
- 腾讯 IM 配置必须和本地 gateway 使用同一个 SDKAppID。

## 命令

```bash
ROOM_RPS_REAL_IM_FLOW_TEST=1 \
ROOM_RPS_BASE_URL=http://127.0.0.1:13000/api/v1 \
ROOM_RPS_APP_CODE=lalu \
TENCENT_IM_SDK_APP_ID=1400000000 \
TENCENT_IM_SECRET_KEY='<secret_key>' \
TENCENT_IM_ADMIN_IDENTIFIER=administrator \
TENCENT_IM_ENDPOINT=adminapisgp.im.qcloud.com \
go test ./tests/smoke -run TestRoomRPSLocalHTTPFlowWithRealTencentIM -count=1 -v
```

## 返回判断

- 通过：本地 HTTP 流程完成，真实腾讯 IM 探针消息发送成功，game-service 创建和应战 IM 投递成功，发起人和应战人返回头像昵称。
- 失败并提示腾讯 IM 错误：先检查 SDKAppID、SecretKey、管理员账号、endpoint 和 GroupID。

## 清理

默认会清理自动创建的 `room-rps-real-im-` 临时群。

如果传入真实房间群，不要开启清理；可以显式加：

```bash
ROOM_RPS_CLEANUP_IM_GROUP=0
```
