3.7 KiB
3.7 KiB
七日签到单账号快速测试
安全配置
只在测试环境发布 signInTestAdmin,并在 Laf 应用环境变量中设置一个高强度随机值:
SIGN_IN_TEST_ADMIN_TOKEN=<随机管理密钥>
环境变量未配置或请求密钥不匹配时,接口完全不可用。不要把该密钥写入前端代码,也不要在正式环境发布此函数。
接口使用 POST /signInTestAdmin 和 application/x-www-form-urlencoded。
公共参数:
| 参数 | 说明 |
|---|---|
adminToken |
与环境变量 SIGN_IN_TEST_ADMIN_TOKEN 相同 |
uid |
唯一测试账号的用户 _id |
action |
inspect、reset、set_level 或 prepare |
操作接口
查看当前测试状态
action=inspect&uid=<uid>&adminToken=<token>
返回玩家 levelAmount、signInActivity、领取数量和领取记录。
清空签到状态
action=reset&uid=<uid>&adminToken=<token>
清空该账号的 users.signInActivity 和所有 sign_in_activity_claims 记录,不修改关卡和资产。
设置测试关卡
action=set_level&uid=<uid>&levelAmount=23&adminToken=<token>
只修改 users.levelAmount,不修改签到状态和资产。
准备测试场景
action=prepare&uid=<uid>&scenario=<场景>&adminToken=<token>
| scenario | 准备结果 | 下一步验证 |
|---|---|---|
locked |
关卡设为门槛减 1,清空活动和领取记录 | 请求活动信息应返回 data: false |
eligible |
关卡设为门槛,清空活动和领取记录 | 请求活动信息应创建活动并返回奖励列表 |
day_1_ready |
活动已开启且尚未领取 | 领取 Day 1 |
day_2_ready |
已预置 Day 1 历史记录 | 领取 Day 2 |
day_3_ready |
已预置 Day 1~2 历史记录 | 领取 Day 3 |
day_4_ready |
已预置 Day 1~3 历史记录 | 领取 Day 4 |
day_5_ready |
已预置 Day 1~4 历史记录 | 领取 Day 5 |
day_6_ready |
已预置 Day 1~5 历史记录 | 领取 Day 6 |
day_7_ready |
已预置 Day 1~6 历史记录 | 领取 Day 7 并验证完成状态和猫 12 |
claimed_today |
已预置今天的 Day 1 领取记录 | 再次领取应返回“今天已经领取” |
expired |
活动结束时间设为当前自然日零点 | 活动状态应为 expired,领取应失败 |
completed |
已预置七天领取记录及完成时间 | 活动状态应为 completed,领取应失败 |
每次 prepare 都会先删除该测试账号原有的签到领取记录,并覆盖该账号的签到活动状态,但不会发放或扣除任何实际资产。
推荐测试顺序
signInActivityInfo 会自动领取,但展示字段返回领取前快照。以下每次准备 day_N_ready 后,直接请求活动信息,检查 todayClaim.rewardDay、奖励内容、canClaim: true、claimedCount: N-1 及当天奖励的 claimed: false,同时数据库应已有 N 条记录。当天再次请求应返回相同 claimId、canClaim: false 和当天奖励的 claimed: true,前端不得重复发奖。Day 7 首次响应为 active,再次请求为 completed;完成和过期场景不得新增记录。检查数据库状态可使用 signInTestAdmin inspect,避免活动信息请求触发领取。
prepare locked,验证未达标不展示。prepare eligible,验证首次请求创建活动且重复请求不重置时间。- 依次使用
day_1_ready至day_7_ready,逐档验证前端奖励。 prepare claimed_today,验证重复点击和重复请求。prepare expired,验证过期页面和禁止领取。prepare completed,验证完成页面和禁止领取。- 测试结束执行
reset。