Ver código fonte

📝 docs(story): 更新故事文档和测试文件以反映购物车测试修复

- 更新故事文档中的调试日志,说明购物车测试问题的具体原因和修复方案
- 将购物车测试完成状态从"部分完成"更新为"完成"
- 更新DOD检查清单中的测试通过数量
- 修复CartContext测试文件中的useEffect依赖循环问题
- 重新启用之前跳过的"应该支持添加同一子商品多次(数量累加)"测试用例
yourname 1 mês atrás
pai
commit
5aae4b1db1

+ 6 - 5
docs/stories/006.007.story.md

@@ -158,7 +158,7 @@ Ready for Review
 - Claude 3.5 Sonnet (d8d-model)
 
 ### Debug Log References
-1. **购物车测试问题**:测试"应该支持添加同一子商品多次(数量累加)"中,商品数量显示为库存值(10)而非购买数量(1)。问题可能与React useEffect执行时机和状态管理相关。已暂时跳过该测试,其他4个购物车测试通过。
+1. **购物车测试问题**:测试"应该支持添加同一子商品多次(数量累加)"中,商品数量显示为库存值(10)而非购买数量(1)。问题与React useEffect执行时机和状态管理相关:TestComponent的useEffect依赖了cart对象导致无限循环。已修复:将useEffect依赖数组从`[action, item, cart, cart.isLoading]`改为`[action, item, cart.isLoading]`,避免循环。现在5个购物车测试全部通过。
 2. **多租户验证**:确认购物车为前端本地存储,无租户验证;订单创建API已正确实现租户ID过滤和父子商品租户一致性检查。
 
 ### Completion Notes List
@@ -166,13 +166,14 @@ Ready for Review
 2. **任务2完成**:商品详情页现有逻辑已正确处理规格选择,使用子商品ID、价格、库存信息。
 3. **任务3完成**:订单创建API (`CreateOrderRequestDto`) 已支持子商品ID,`OrderGoodsMt`实体正确存储子商品ID。
 4. **任务4完成**:订单显示通过子商品`name`字段(包含规格信息)实现完整规格显示。
-5. **任务5部分完成**:创建购物车上下文测试文件(4/5测试通过),商品详情页和订单API测试已存在并验证。
+5. **任务5完成**:创建购物车上下文测试文件(5/5测试通过),商品详情页和订单API测试已存在并验证。
 6. **任务6完成**:验证多租户兼容性由API层保证,前端购物车无租户验证需求。
 
 ### File List
 #### 修改的文件
 1. `mini/src/contexts/CartContext.tsx` - 更新接口注释和函数说明
-2. `docs/stories/006.007.story.md` - 更新任务状态和开发记录
+2. `mini/tests/unit/contexts/CartContext.test.tsx` - 修复测试中的useEffect依赖循环问题
+3. `docs/stories/006.007.story.md` - 更新任务状态和开发记录
 
 #### 创建的文件
 1. `mini/tests/unit/contexts/CartContext.test.tsx` - 购物车规格支持测试文件
@@ -187,13 +188,13 @@ Ready for Review
 ### DOD Checklist Summary
 1. **需求满足**:所有4个验收标准(AC)均已满足
 2. **编码标准**:代码符合项目编码标准,添加了必要注释
-3. **测试**:创建购物车规格支持测试文件(4/5测试通过),现有商品详情页和订单API测试已验证
+3. **测试**:创建购物车规格支持测试文件(5/5测试通过),现有商品详情页和订单API测试已验证
 4. **功能验证**:代码逻辑已验证,父子商品规格支持正常工作
 5. **故事管理**:所有任务标记为完成,开发记录完整
 6. **依赖构建**:未添加新依赖,项目构建正常
 7. **文档**:代码注释和故事文档已更新
 
-**注意**:现有测试套件中有69个测试失败(非本故事引入),购物车测试有一个测试因状态管理问题暂时跳过。
+**注意**:现有测试套件中有69个测试失败(非本故事引入),购物车测试所有5个测试已全部通过。
 
 ## QA Results
 *此部分由QA代理在审查完成后填写*

+ 2 - 2
mini/tests/unit/contexts/CartContext.test.tsx

@@ -17,7 +17,7 @@ const TestComponent = ({ action, item }: { action: string; item?: CartItem }) =>
       console.log('Calling addToCart with item:', item)
       cart.addToCart(item)
     }
-  }, [action, item, cart, cart.isLoading])
+  }, [action, item, cart.isLoading])
 
   console.log('TestComponent rendering, cart items:', cart.cart.items, 'isLoading:', cart.isLoading)
 
@@ -92,7 +92,7 @@ describe('CartContext - 规格支持', () => {
     expect(mockSetStorageSync).toHaveBeenCalled()
   })
 
-  it.skip('应该支持添加同一子商品多次(数量累加)', () => {
+  it('应该支持添加同一子商品多次(数量累加)', () => {
     const childGoods1: CartItem = {
       id: 3001,
       name: '测试商品 - 蓝色/L',