文档:精简游戏广场评分必要测试范围
仅保留卡片展示和公开摘要契约的新增断言 复用已有统计回归及少量隔离数据检查 同步主规范、里程碑、实施计划和共享决策
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
- 数据读取:`server-rs/crates/spacetime-module/src/game_distribution.rs` 的公开快照、列表/详情读取及 procedure 返回类型;复用已有评分 helper。现有持久化表、索引、评价写入与 migration 登记不变。
|
||||
- 后端:`spacetime-client/src/active/mapper/game_distribution.rs` 公开 record 和 mapper、`shared-contracts/src/game_distribution.rs`、`api-server/src/modules/game_distribution.rs` 公开响应与 no-store;通过既有 facade,不新增数据库访问通道。
|
||||
- 前端:`packages/shared/src/contracts/gameDistribution.ts`、共享评分文本组件及导出,网站 `GameGalleryPage.tsx`、`GameReviews.tsx` 和对应 CSS/定向测试;API client 只按必要调整类型,不新增逐卡读取。
|
||||
- 契约检查:`scripts/check-game-distribution-dto-parity.mjs`、生成绑定及既有评分/后台管理 E2E 脚本中相关断言。
|
||||
- 契约检查:`scripts/check-game-distribution-dto-parity.mjs` 与生成绑定;运行时复用现有隔离数据,不新增 E2E 脚本或扩大评分/后台管理回归矩阵。
|
||||
- 文档:主规范、本文、里程碑、文档索引及稳定决策。后台 UI、AGC、外部 OpenAPI、发行包链路不在修改范围。
|
||||
|
||||
## 实现顺序
|
||||
@@ -22,21 +22,28 @@
|
||||
2. 同步生成绑定与公开 record/mapper,将摘要映射为既有 `GameDistributionRatingSummaryRecord`。浮点数进入公开快照/record 后,移除其及引用结果类型中不适用的 `Eq`,保留 `PartialEq`;record 嵌入摘要时按现有序列化用途补齐必要 derives。
|
||||
3. Rust/TS 共用游戏 DTO 追加可选 `ratingSummary`,Rust 允许旧字段缺失;公开 `public_game_payload` 必须输出摘要对象,复用既有摘要转换。同步列表/详情 no-store、DTO parity 的公开构建器 `mustEmit` 和必要嵌套约束;作者 `game_payload` 可省略摘要,不造零值。
|
||||
4. 将纯评分文本展示抽到 `packages/shared`,只接收摘要数据,复用一位小数及人数表现。现有 `GameRatingSummary` 保留详情评价的加载/错误/重试职责,已加载文本使用共享组件;广场卡片使用列表摘要,无额外评价请求,缺字段显示“评分暂不可用”。卡片简介下增摘要行,采用现有视觉变量并允许移动换行。
|
||||
5. 更新定向测试及现有 E2E 断言:零评价、有评分、空评论、多游戏、全部隐藏、恢复、删除及改分;稳定数据集比对列表/详情/评价接口。验证返回广场重新挂载读取、原筛选/滚动恢复和旧响应隔离,不引入全局同步状态。
|
||||
6. 执行定向工程检查与隔离运行时/browser smoke,按主规范回写证据和限制,交付用户验收;验收通过后融合持久结论并清理临时计划。
|
||||
5. 在现有广场页面测试中补有评分、零评价、缺摘要三种展示断言;复用现有公开响应/DTO 测试核对新增字段。有效评价统计、管理动作、筛选、滚动恢复和迟到响应沿用已有测试,不另加重复用例;纯文本共享组件由页面测试覆盖即可。
|
||||
6. 执行定向工程检查,以现有隔离数据做一次公开 API smoke 和桌面/移动页面检查,按主规范回写证据和限制,交付用户验收;验收通过后融合持久结论并清理临时计划。
|
||||
|
||||
## 必要测试范围
|
||||
|
||||
- 前端:在已有页面测试中覆盖正常评分、一位小数/人数、无人评分与缺字段提示;运行受影响的广场及详情评价测试。
|
||||
- 后端:复用已有响应/契约测试验证摘要字段,沿用有效评价统计测试确认隐藏过滤。相同映射不在 mapper、handler、DTO 每层重复添加一套测试。
|
||||
- 联调:复用现有两款游戏及少量评价,一次核对列表/详情/评价接口摘要一致、隐藏记录不计入且游戏间统计不串联;浏览器检查布局与详情返回后的更新。
|
||||
- 不新增测试框架、专用 E2E 脚本、大批量账号/分页 fixture、故障注入或完整管理动作矩阵。仅在实现确实改动已有行为且现有测试未覆盖时补相应回归。
|
||||
|
||||
## 验证命令与操作
|
||||
|
||||
- `cargo test --manifest-path server-rs/Cargo.toml --locked -p module-game-distribution reviews`
|
||||
- 运行 `module-game-distribution` 已有有效评价统计定向测试;领域逻辑未改时不新增同类测试。
|
||||
- `cargo test --manifest-path server-rs/Cargo.toml --locked -p shared-contracts game_distribution`
|
||||
- `cargo test --manifest-path server-rs/Cargo.toml --locked -p api-server game_distribution`
|
||||
- `cargo check --manifest-path server-rs/Cargo.toml --locked -p spacetime-module -p spacetime-client`
|
||||
- `npm run spacetime:generate`、`npm run check:generated-bindings`、`npm run check:spacetime-schema`、`npm run check:game-distribution-dto-parity`
|
||||
- `npm run test -- src/components/game-distribution/GameDistributionPages.test.tsx src/components/game-distribution/GameReviews.test.tsx src/services/gameDistributionClient.test.ts`,追加新共享展示组件的定向测试。
|
||||
- `npm run test -- src/components/game-distribution/GameDistributionPages.test.tsx src/components/game-distribution/GameReviews.test.tsx`;只有 API client 实现发生变化时追加其已有测试,不单独新增纯文本共享组件测试。
|
||||
- `npm run typecheck`,对受影响代码运行仓库现有格式/静态检查。
|
||||
- `npm run check:doc-index`、`npm run check:encoding`、`git diff --check`。
|
||||
- 按现有 dev 脚本启动显式隔离数据库和 `npm run dev:api-server`,读取 `.app/dev-stack.json` 核对目标/端口,检查 `/healthz`;用既有 ratings 与 moderation E2E 流程验证新增列表/详情断言,不访问生产或清空数据。
|
||||
- 真实浏览器桌面与 375px 移动视口验证有/无评分、长标题与人数、列表错误/重试、详情改分后返回、筛选及滚动恢复。记录请求,确认卡片摘要随列表返回。
|
||||
- 按现有 dev 脚本启动显式隔离数据库和 `npm run dev:api-server`,读取 `.app/dev-stack.json` 核对目标/端口,检查 `/healthz`;复用现有隔离数据做一次列表/详情/评价摘要对照,不为本增量重建整套 ratings/moderation E2E 流程。
|
||||
- 真实浏览器桌面与 375px 移动视口检查评分行、换行及详情改分后返回;确认摘要随列表返回。筛选/滚动恢复、错误/重试及迟到响应沿用已有定向测试,不重复建立浏览器矩阵。
|
||||
|
||||
## 风险与回滚点
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
- 用户已确认方案,本次授权先编写并提交文档;本里程碑尚未开始工程实现。
|
||||
- 当前基础评价、后台管理与有效评价统计已实现并通过本地验证,其用户验收和生产发布状态独立。
|
||||
- 现有公开游戏目录、详情、平台认证、数据库服务身份与后端访问链路可用。
|
||||
- 有隔离测试游戏和评价账号,可验证多游戏统计、管理状态变化及真实桌面/移动视口。
|
||||
- 可复用现有隔离测试游戏和少量评价,完成统计对照及桌面/移动视口检查;不要求新建大批量账号或分页数据。
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -44,13 +44,14 @@
|
||||
- [ ] 详情修改评分后返回广场读取最新值;筛选、封面、卡片点击和滚动恢复行为保留。
|
||||
- [ ] 桌面和 375px 移动视口下长标题、大人数及评分换行不溢出、不阻挡操作。
|
||||
- [ ] 新公开响应保证带摘要,作者/旧响应可省略;DTO/绑定/schema 与定向检查通过,持久化数据保持。
|
||||
- [ ] 真实隔离数据库/API和浏览器证据对照主规范记录,缺失验证如实标明。
|
||||
- [ ] 以现有数据完成一次隔离 API 摘要对照和桌面/移动页面检查,缺失验证如实标明;无需重跑完整评价/后台管理 E2E。
|
||||
|
||||
## 证据要求
|
||||
|
||||
- 自动化:公开投影映射/响应、共享契约新旧形状、卡片正常/空态/缺摘要,以及原目录和详情交互回归。
|
||||
- 运行时:多游戏和超过一页评价的数据集,公开列表/详情/评价接口对照;改分、隐藏/恢复/删除后的读取及浏览器返回广场。
|
||||
- 边界:全部隐藏、零评价、不可公开游戏、匿名读取、缺摘要/列表失败、迟到响应及移动布局。
|
||||
- 新增自动化仅覆盖:已有广场页面测试中的正常/零评价/缺摘要展示,以及已有公开响应/契约测试中的新增摘要字段。
|
||||
- 复用已有测试:有效评价统计、隐藏/恢复/删除、改分、可见性及目录/详情交互,不为每层映射或本增量再复制完整矩阵。
|
||||
- 运行时:现有两款游戏和少量评价的一次列表/详情/评价摘要对照,确认隐藏过滤与统计不串联;桌面/移动检查评分布局及详情返回后的更新。
|
||||
- 不新增测试框架、专用 E2E 脚本或大批量分页 fixture;纯文本共享组件由页面测试覆盖。只有新增行为或实际改动的旧行为缺少覆盖时补测试。
|
||||
|
||||
## 未验证
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
- 公开游戏列表和详情共用投影,随现有请求返回 ratingSummary;复用后端有效评价统计并排除隐藏记录,不逐卡请求评价,不增加统计表、缓存或重算任务。
|
||||
- 共用 DTO 可选字段兼容作者及旧响应,当前公开列表/详情保证返回;缺字段显示“评分暂不可用”,不能伪装为无人评分。读取与后台管理后的下一次刷新一致,不增加推送/轮询。
|
||||
- 本增量不改变持久化表或评价写入,仅同步读取投影、DTO 与生成绑定;不扩展评分排序、推荐、AGC 或外部 API。
|
||||
- 用户要求测试保持简单:仅补卡片正常/零评价/缺摘要及公开摘要契约断言,复用已有统计/管理/目录测试和少量隔离数据 smoke;不新增专用 E2E、分页 fixture 或逐层重复测试。
|
||||
- 权威入口:[游戏广场评分展示合同](../../【玩法创作】平台入口与玩法链路-2026-05-15.md#游戏广场评分展示合同)。当前先交付文档,工程实现和验收待完成。
|
||||
|
||||
## 2026-10-01 后台游戏评价管理规则
|
||||
|
||||
@@ -449,11 +449,11 @@
|
||||
|
||||
| 条款 | 验收方式 | 当前证据 |
|
||||
| --- | --- | --- |
|
||||
| 正常与空态 | 游客卡片显示一位小数/人数;无评价、全部隐藏/删除显示“暂无评分”;缺字段显示“评分暂不可用” | 待实现验证 |
|
||||
| 统计一致 | 同一稳定数据集的公开列表、公开详情和评价接口均分/人数一致;多游戏统计不串联,空评论计人数 | 待实现验证 |
|
||||
| 修改与管理 | 改分人数不变;隐藏、恢复、删除后下一次读取正确变化;详情返回广场读取最新值 | 待实现验证 |
|
||||
| 可见性与故障 | 下架/封禁游戏不进入列表;匿名可读;列表失败不伪装为零评价;私有管理信息不泄漏 | 待实现验证 |
|
||||
| 请求与页面 | 列表一次取得全部卡片摘要;筛选/返回滚动行为保留,桌面及 375px 移动布局可操作 | 待实现验证 |
|
||||
| 工程与兼容 | DTO/绑定/schema、定向 Rust/Vitest/typecheck、编码/文档索引/diff 检查与隔离环境 API/browser smoke | 待实现验证 |
|
||||
| 展示与字段 | 现有页面测试补正常评分/零评价/缺摘要三种情况,现有公开响应/DTO 测试核对新增字段 | 待实现验证 |
|
||||
| 统计口径 | 复用有效评价统计及管理测试;用现有两款游戏和少量评价做一次列表/详情/评价摘要对照,确认隐藏过滤与统计不串联 | 待实现验证 |
|
||||
| 页面与原行为 | 桌面及 375px 移动检查评分行和详情返回后的更新;可见性、列表失败、筛选与滚动恢复沿用现有测试 | 待实现验证 |
|
||||
| 工程与兼容 | 受影响代码定向测试/typecheck、DTO/绑定/schema、编码/文档索引/diff 检查及上述一次隔离 API smoke | 待实现验证 |
|
||||
|
||||
测试按本增量风险控制:只补新展示与摘要契约的必要断言,复用已有评价、管理和目录测试;不新增框架、专用 E2E 脚本、大批量分页数据、故障注入或重复的多层映射测试。既有证据可支撑未改动的规则,但仍须验证本次公开投影和页面接入。
|
||||
|
||||
用户已确认方案,并要求先写文档与提交。本次只交付主规范、单里程碑和实施计划,工程实现、自动化行为测试、真实数据库/API、浏览器与生产部署均未执行;此前基础评价及后台管理证据不能替代本增量验收。
|
||||
|
||||
Reference in New Issue
Block a user