|
|
@@ -18,6 +18,7 @@ Ready for Development
|
|
|
7. 编写集成测试:覆盖完整CRUD流程
|
|
|
8. 通过类型检查和基本测试验证
|
|
|
9. 与`@d8d/allin-channel-module`后端模块集成验证
|
|
|
+10. 创建渠道选择器组件,参照平台选择器组件模式,作为可复用组件供其他UI包使用
|
|
|
|
|
|
**集成测试要求**:
|
|
|
- 测试文件:`tests/integration/channel.integration.test.tsx`
|
|
|
@@ -108,6 +109,19 @@ Ready for Development
|
|
|
- [x] 修复测试失败和类型错误(修复了测试选择器冲突、路由名称问题、类型推导错误)
|
|
|
- [x] 验证测试覆盖率(集成测试全部通过,类型检查通过)
|
|
|
|
|
|
+- [ ] 任务9:创建渠道选择器组件 (AC: 10)
|
|
|
+ - [ ] 创建`src/components/ChannelSelector.tsx`组件
|
|
|
+ - **参考文件**:`allin-packages/platform-management-ui/src/components/PlatformSelector.tsx`
|
|
|
+ - **架构**:使用React Query获取渠道列表,使用@d8d/shared-ui-components的Select组件
|
|
|
+ - **功能**:渠道选择器,支持value/onChange等标准props,显示渠道名称
|
|
|
+ - **用途**:作为可复用组件供其他UI包使用(如广告管理、内容管理等需要选择渠道的场景)
|
|
|
+ - [ ] 创建渠道选择器集成测试
|
|
|
+ - **参考文件**:`allin-packages/platform-management-ui/tests/integration/platform-selector.integration.test.tsx`
|
|
|
+ - **测试内容**:数据加载、选择功能、错误处理、禁用状态
|
|
|
+ - [ ] 更新package.json导出配置
|
|
|
+ - **导出**:在`src/index.ts`中导出ChannelSelector组件
|
|
|
+ - **依赖**:确保组件可被其他模块导入使用
|
|
|
+
|
|
|
## Dev Notes
|
|
|
|
|
|
### 从前一个故事学到的关键经验(故事008.001):
|
|
|
@@ -115,6 +129,7 @@ Ready for Development
|
|
|
2. **API路径一致性验证**:必须根据后端实际路由设计前端API调用,不能假设为标准CRUD模式。
|
|
|
3. **测试精度优化**:在测试中使用test ID比文本查找更精确可靠。
|
|
|
4. **类型推导优化**:遵循现有UI包的模式,使用正确的RPC类型推导语法。
|
|
|
+5. **选择器组件模式**:创建可复用的选择器组件供其他UI包使用,遵循平台选择器组件的架构模式。
|
|
|
|
|
|
### 技术栈规范 [Source: docs/architecture/ui-package-standards.md]
|
|
|
- **包结构规范**:标准目录结构,包含components、api、hooks、types目录
|
|
|
@@ -199,6 +214,7 @@ Ready for Development
|
|
|
5. **状态管理测试**:验证React Query数据获取和更新
|
|
|
6. **API集成测试**:验证RPC客户端调用正确性
|
|
|
7. **用户交互测试**:测试点击、输入、表单提交等交互
|
|
|
+8. **渠道选择器组件测试**:测试渠道选择器的数据加载、选择功能、错误处理和禁用状态
|
|
|
|
|
|
### 测试执行流程
|
|
|
1. 设置测试环境,配置必要的mock
|
|
|
@@ -207,7 +223,8 @@ Ready for Development
|
|
|
4. 编写搜索功能测试,验证筛选和分页
|
|
|
5. 测试表单验证和提交逻辑
|
|
|
6. 验证API调用和状态更新
|
|
|
-7. 检查测试覆盖率和通过率
|
|
|
+7. 编写渠道选择器组件测试,验证数据加载和选择功能
|
|
|
+8. 检查测试覆盖率和通过率
|
|
|
|
|
|
### 测试精度优化(基于故事008.001经验)
|
|
|
- 在组件中添加test ID到所有交互元素
|
|
|
@@ -218,6 +235,7 @@ Ready for Development
|
|
|
| Date | Version | Description | Author |
|
|
|
|------|---------|-------------|--------|
|
|
|
| 2025-12-03 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
|
+| 2025-12-03 | 1.1 | 添加渠道选择器组件任务,参照平台选择器组件模式 | John (PM) |
|
|
|
|
|
|
## Dev Agent Record
|
|
|
*此部分由开发代理在实现过程中填写*
|
|
|
@@ -235,12 +253,13 @@ Ready for Development
|
|
|
7. **类型推断优化**:参考广告管理UI模式,使用RPC推断类型`ChannelListItem = ChannelListResponse['data'][0]`,避免直接导入schema类型
|
|
|
|
|
|
### Completion Notes List
|
|
|
-1. ✅ 所有8个任务已完成
|
|
|
+1. ✅ 前8个任务已完成
|
|
|
2. ✅ 8个集成测试全部通过
|
|
|
3. ✅ 类型检查通过(channel-management-ui包无错误)
|
|
|
4. ✅ 前后端Schema一致性验证完成
|
|
|
5. ✅ API路径映射正确性验证完成
|
|
|
6. ✅ 技术栈转换完成(Ant Design → @d8d/shared-ui-components,Jotai → React Query,Ant Form → React Hook Form + Zod)
|
|
|
+7. ⬜ 第9个任务(渠道选择器组件)待完成
|
|
|
|
|
|
### File List
|
|
|
1. `allin-packages/channel-management-ui/package.json` - 包配置
|
|
|
@@ -252,6 +271,8 @@ Ready for Development
|
|
|
7. `allin-packages/channel-management-ui/src/types/index.ts` - 类型定义
|
|
|
8. `allin-packages/channel-management-ui/tests/integration/channel.integration.test.tsx` - 集成测试
|
|
|
9. `allin-packages/channel-management-ui/src/schemas/channel.schema.ts` - 表单验证Schema
|
|
|
+10. `allin-packages/channel-management-ui/src/components/ChannelSelector.tsx` - 渠道选择器组件(待创建)
|
|
|
+11. `allin-packages/channel-management-ui/tests/integration/channel-selector.integration.test.tsx` - 渠道选择器集成测试(待创建)
|
|
|
|
|
|
## QA Results
|
|
|
*此部分由QA代理在QA审查后填写*
|