server/laf-cloud/signInActivity.TESTING.md

3.4 KiB
Raw Blame History

七日签到单账号快速测试

安全配置

只在测试环境发布 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: false。当天再次请求应返回相同 claimId,前端不得重复发奖;完成和过期场景不得新增记录。检查数据库状态可使用 signInTestAdmin inspect,避免活动信息请求触发领取。

  1. prepare locked,验证未达标不展示。
  2. prepare eligible,验证首次请求创建活动且重复请求不重置时间。
  3. 依次使用 day_1_ready 至 day_7_ready,逐档验证前端奖励。
  4. prepare claimed_today,验证重复点击和重复请求。
  5. prepare expired,验证过期页面和禁止领取。
  6. prepare completed,验证完成页面和禁止领取。
  7. 测试结束执行 reset。