|
|
@@ -40,19 +40,20 @@ import static org.junit.jupiter.api.Assertions.fail;
|
|
|
* 订单存在 / {@code productType != 'activity'}(活动评价零污染)/ {@code status=completed} /
|
|
|
* {@code buyerId==userId}(评价人为下单人本人)/ {@code confirmTime >= now-90d}(Q4 窗口)/
|
|
|
* {@code ProductReviewMapper.findByOrderId} 幂等(一单一评,表唯一键 {@code uk_order_id})</li>
|
|
|
- * <li>数据:新表 {@code product_reviews}(迁移464,独立于活动评价 {@code review_orders},
|
|
|
+ * <li>数据:新表 {@code product_reviews}(迁移482,独立于活动评价 {@code review_orders},
|
|
|
* {@code ReviewOrderServiceImpl} 活动链路零改动)</li>
|
|
|
* </ul>
|
|
|
*
|
|
|
- * <p><b>实现现状</b>:本分支 src/main 中 {@code ProductReviewController} /
|
|
|
- * {@code ProductReviewService} / {@code ProductReviewServiceImpl} / {@code ProductReviewMapper} /
|
|
|
- * {@code ProductReview} 实体 / {@code ProductReviewRequest} DTO 及 schema.sql 的
|
|
|
- * {@code product_reviews} 建表均 <b>未落地</b>(全库 0 引用)。因此本测试以「反射结构契约」探测
|
|
|
- * 实现缺失:能编译通过、能运行、断言失败(红),失败断言原文清晰可贴(对齐同批
|
|
|
- * {@code TeamProfitHookContractTest} 风格)。</p>
|
|
|
+ * <p><b>实现现状</b>(主线核实):{@code ProductReview} 实体、{@code ProductReviewMapper}
|
|
|
+ * 与 schema.sql 的 {@code product_reviews} 建表(迁移482)<b>已落地</b>;但
|
|
|
+ * {@code ProductReviewController} / {@code ProductReviewService} / {@code ProductReviewServiceImpl} /
|
|
|
+ * {@code ProductReviewRequest} DTO 及其 {@code createReview} 行为<b>仍未落地</b>。因此本测试以
|
|
|
+ * 「反射结构契约」钉死宿主:能编译通过、能运行、控制器/服务/DTO 相关断言失败(红),失败断言原文
|
|
|
+ * 清晰可贴(对齐同批 {@code TeamProfitHookContractTest} 风格)。</p>
|
|
|
*
|
|
|
- * <p><b>RED 预期</b>:全部断言在宿主类/表缺失处失败(红);GREEN 阶段实现方按上述契约清单
|
|
|
- * 落地后转绿。</p>
|
|
|
+ * <p><b>RED 预期</b>:控制器/服务/DTO 相关 7 条断言失败(红);实体、Mapper、建表 3 条锚点已随
|
|
|
+ * 迁移482 落地而转绿。GREEN 阶段实现方仅需补 {@code ProductReviewController} +
|
|
|
+ * {@code ProductReviewService(Impl)} + {@code ProductReviewRequest} 即可整类转绿。</p>
|
|
|
*
|
|
|
* <p><b>测试范围</b>:纯契约级,无 Spring / 无 DB / 无外部服务。</p>
|
|
|
*/
|
|
|
@@ -261,7 +262,7 @@ class ProductReviewCreateContractTest {
|
|
|
String schema = readSchemaSql();
|
|
|
assertTrue(schema.contains(TABLE_NAME),
|
|
|
"[shop.review.create] schema.sql 缺少 product_reviews 建表"
|
|
|
- + "(§2.1 迁移464,Q1 拍板=独立表,不复用 review_orders 活动评价表)。实现未落地。");
|
|
|
+ + "(§2.1 迁移482,Q1 拍板=独立表,不复用 review_orders 活动评价表)。实现未落地。");
|
|
|
assertTrue(schema.contains(UK_ORDER_ID),
|
|
|
"[shop.review.create] product_reviews 应含 " + UK_ORDER_ID
|
|
|
+ " 唯一键(order_id 一单一评,幂等约束,§2.1 + PRD P0-A 验收1)。");
|