MatchMaster/assets/mini_program_benefits/docs/mini-program-benefits-testing.md
2026-09-18 12:14:57 +08:00

71 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 小程序福利测试与验收
更新日期:2026-09-18。[返回活动总览](../README.md)
## 白字入口(当前暂停)
当前不会自动显示:MiniProgramBenefitsBridge.attach 中 mountTestPanel 调用已注释,BenefitsRuntimeTest.prefab 的 entry 未激活。以下面板操作及涉及白字的回归步骤均以恢复这两处并重新构建为前提;当前版应检查各环境白字均不出现。本次只更新文档,保留暂停状态。
恢复后,首页排行榜按钮左侧显示“福利测试”,点击区域为 200 × 88 设计单位,随界面缩放并跟随排行榜位置。白字入口不受首关或两项已领取的正常入口隐藏规则限制。
与七日活动复用同一环境判断:微信开发版/体验版,且测试地址和正式地址不同源时才加载并允许操作;正式版不显示。代码在 assets/mini_program_benefits/test/ 普通目录中,随活动分包加载,无独立测试包。重新构建后生效,不需要手动挂组件。
| 操作 | 效果 |
| --- | --- |
| 打开白字面板 | 刷新当前 UID、关卡、登录/领取快照、入口红点及最近微信 scene |
| 模拟收藏入口 | 给当前账号保存收藏资格,不伪造微信生命周期记录 |
| 模拟桌面入口 | 给当前账号保存桌面资格,不伪造微信生命周期记录 |
| 清本地资格 | 清当前账号两项资格,不清服务端领取标记、道具或奖励回执 |
| 清本地领取缓存 | 清当前账号两项 prop.welfareCredits 防重记录和内存领取回执;保留道具数量、入口资格、其他账号缓存及登录领取标记。需关闭福利并等待请求完成 |
| 打开福利 | 进入实际福利弹窗;要求登录完成并通过第 1 关,领取会影响测试账号 |
修改资格或清领取缓存前须关闭福利窗口并等待释放结束。重新打开测试面板会更新快照,但不会重新请求服务器登录数据。重复测试同一账号领奖时,清本地领取缓存,由后端重置领取标记,再重新登录;清缓存不会扣回已发道具。
## 如何看字段
| 字段 | 含义 |
| --- | --- |
| 登录返回 miniProgramWelfare | favorite / desktop 为 false 表示未领取,true 表示已领取;当前会话领取成功也会更新 |
| 本地资格 {} | 当前账号尚未在本机保存对应入口资格 |
| favorite_entry / desktop_entry | 收藏福利 / 桌面福利 |
| eligibleAt | 资格时间戳;0 表示无资格 |
| claimedAt | 领取标记;0 表示未领,登录同步可能为 1,本次领取成功时为时间戳 |
| acknowledged | 奖励展示确认标记;必须结合 claimedAt 判断,单独 true 不代表领过 |
| deliveryPending | true 表示领取已确认,但道具同步尚待完成 |
| receiptId | 领奖回执,用于客户端加奖防重与展示确认 |
| scene / lifecycle / observedAt | 微信入口值、cold/show 生命周期、观察时间戳;只保留最近 24 条 |
“当前领取状态”是客户端内存状态:资格来自本机,已领取状态来自登录/领奖结果,不是每次展示都查询服务器。普通入口如 1001 不会新增本活动资格。
## 建议回归顺序
1. 未过首关时进入首页:正常福利入口隐藏;测试服白字仍可用。
2. 模拟两种入口资格,再通过首关:正常入口显示且红点亮。
3. 分别打开引导与领取:确认两项各发冻结、锤子、魔法棒各 1,关闭奖励后状态更新。
4. 两项完成:正常入口隐藏,白字仍可查看;清本地资格不会使已领取福利重新可领。
5. 从微信实际收藏入口(1104)、桌面入口(1023)进入,核对记录;模拟按钮不能替代真实入口验证。
6. 断网/上传失败后,在同一会话重新打开福利,确认不重复加奖;跨退出限制见接口文档。
7. 连续打开关闭福利与白字面板、离开再回首页,检查界面和资源释放;检查正式版白字不显示。
## 自动化与当前验证范围
在项目根目录使用 Node.js 和 TypeScript 4.9+:
node --test tools/tests/mini-program-benefits-client.test.cjs tools/tests/mini-program-benefits-reward.test.cjs tools/test-starter-pack.cjs
可通过 TYPESCRIPT_PATH 指定 TypeScript 模块路径。测试在 tools/,使用隔离桩,不对真实服务器发请求。
2026-09-17 历史记录:福利 41 项、新手礼包 37 项,共 78 项通过;覆盖入口资格、登录状态、账号隔离、失败重试、重复发奖防护、资源共享释放及首页相关行为。源码检查未发现福利相关编译错误,不代表整个项目无历史编译错误。
用户已反馈清理前功能测试无问题。其后移除 Mock、合并测试分包等最终改动尚未重新构建/上传和完成真机回归。独立预览场景、Mock 适配器、旧重置按钮均已移除。
## 2026-09-18 核验与发布待办
首次执行因缺少 typescript 未启动。提交前使用本机已安装模块复验:上面三个文件共 80 项通过,tools/test-seven-day-debug.cjs 另 5 项通过。福利测试通过 TYPESCRIPT_PATH 指定模块;七日测试使用 NODE_PATH 指向包含 typescript 的 node_modules。package.json 已声明依赖,其他机器可安装开发依赖后运行;npm test 仍是占位命令。
- 已完成本次自动化复验;后续代码变动后重跑相关用例。
- 重新构建微信包,验收真实 1104/1023 入口、登录字段、加奖及 userProp 同步。
- 验证丛林宝藏和新手礼包显隐组合下的福利入口补位。
- 验证双击领取、超时、切换账号、上传失败后的同会话重试;跨重启补偿限制见接口文档。
- 留存构建版本、目标服务器、设备、验收日期和实际结果;本地源码核对不能证明线上已更新。