Ready for Review
作为 mini小程序开发者, 我希望 将现有的UI组件从mini项目迁移到独立的共享UI包中, 以便 这些组件可以被复用、独立测试和维护,提高代码的可维护性。
mini-shared-ui-components包创建成功,可通过workspace引用mini-ui-packages/mini-shared-ui-components (验收标准: 1)
mini/src/components/ui/ 迁移现有的UI组件 (验收标准: 2)
tests/__helpers__/ 目录,包含可复用的测试工具函数Epic 014中没有先前故事。
UI组件包不需要特定的数据模型。[来源:architecture/data-model-schema-changes.md#现有数据模型状态]
UI组件包不需要API端点。[来源:architecture/api-design-integration.md#api集成策略]
mini/src/components/ui/ [来源:architecture/source-tree.md#实际项目结构]mini/src/components/ui/ [来源:architecture/source-tree.md#实际项目结构]mini-ui-packages/mini-shared-ui-components/ (项目根目录下的新目录)mini-ui-packages/mini-shared-ui-components/package.jsonmini-ui-packages/mini-shared-ui-components/tsconfig.jsonmini-ui-packages/mini-shared-ui-components/src/ (组件源码)mini-ui-packages/mini-shared-ui-components/tests/ (测试文件)迁移组件时必须参考mini项目中现有的组件实现:
mini/src/components/ui/button.tsx - 使用class-variance-authority变体系统,封装Taro Button组件mini/src/components/ui/form.tsx - 复杂表单组件的实现模式mini/src/components/ui/dialog.tsx - 对话框组件的实现mini/src/components/ui/目录下的12个组件文件都需要参考迁移注意事项:
tests/文件夹与源码并行 [来源:architecture/coding-standards.md#增强特定标准]必须参照mini项目中现有的测试配置模式和文件结构:
mini/jest.config.js - 包含Taro组件mock、测试匹配规则、覆盖率配置等mini/tests/setup.ts - 包含Taro组件的完整mock实现、全局环境变量设置、DOM API模拟mini/tests/ - 包含以下子目录:
__mocks__/ - 模拟文件(样式、文件等)__snapshots__/ - 快照测试文件components/ - 组件测试(如Button.test.tsx)mini/tests/components/Button.test.tsx - 使用@testing-library/react进行组件渲染和交互测试@tarojs/components mock实现,需要在新包的测试配置中复制类似的mock逻辑process.env.TARO_ENV = 'h5'等环境变量以模拟Taro运行环境关键注意事项:
.test.tsx模式,与现有项目保持一致目标: 为所有mini相关的UI包创建统一的可复用测试基础设施,避免重复配置。
实现方案:
测试工具目录结构: 在 mini-ui-packages/mini-shared-ui-components/tests/ 下创建:
__helpers__/ - 可复用的测试工具函数
taro-mocks.ts - 标准化的Taro组件mock配置test-utils.ts - 通用的测试工具函数(渲染、断言等)env-setup.ts - 测试环境设置工具__config__/ - 测试配置
jest-preset.js - 可复用的Jest预设配置tsconfig.test.json - 测试专用的TypeScript配置导出机制:
testing.ts 或 testing/index.ts 作为测试工具入口import { setupTaroTest } from '@d8d/mini-shared-ui-components/testing' 使用包含的内容:
@tarojs/components mock实现收益:
packages/目录用于共享包 [来源:architecture/source-tree.md#实际项目结构]mini-ui-packages/目录来组织所有mini相关的UI包tests/文件夹与源码并行 [来源:architecture/coding-standards.md#增强特定标准]__helpers__/, __config__/)@d8d/mini-shared-ui-components/testing)| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-19 | 1.0 | Initial story creation | Scrum Master Bob |
This section is populated by the development agent during implementation
{{agent_model_name_version}}
Reference any debug logs or traces generated during development
Notes about the completion of tasks and any issues encountered
List all files created, modified, or affected during story implementation
Results from QA Agent QA review of the completed story implementation