# Story 006.001: 迁移 mini-test-demo 中现成的测试环境

## Status
Draft

## Story
**As a** 开发人员，
**I want** 迁移 mini-test-demo 中现成的测试环境到 mini 项目，
**so that** 小程序项目拥有完整的测试环境配置，能够运行基础示例测试，确保代码质量和稳定性

## Acceptance Criteria
1. 在 mini/package.json 中添加测试脚本
2. 复制 mini-test-demo 中的 jest.config.js 配置文件
3. 复制 mini-test-demo 中的 tests 目录结构和 setup.ts
4. 复制 Taro 组件 mock 和测试依赖配置
5. 复制基础示例测试文件
6. 验证测试环境正常运行
7. 不创建新的组件/页面测试（当前为 starter 项目）

## Tasks / Subtasks
- [ ] 在 mini/package.json 中添加测试脚本 (AC: 1)
  - [ ] 从 mini-test-demo/mini/package.json 复制测试相关脚本
  - [ ] 添加 "test": "jest" 脚本
  - [ ] 添加 "test:watch": "jest --watch" 脚本
  - [ ] 添加 "test:coverage": "jest --coverage" 脚本
- [ ] 复制 mini-test-demo 中的 jest.config.js 配置文件 (AC: 2)
  - [ ] 复制 mini-test-demo/mini/jest.config.js 到 mini/jest.config.js
  - [ ] 验证配置文件路径映射正确
  - [ ] 确保模块名称映射与 mini 项目结构匹配
- [ ] 复制 mini-test-demo 中的 tests 目录结构和 setup.ts (AC: 3)
  - [ ] 创建 mini/tests/ 目录
  - [ ] 复制 mini-test-demo/mini/tests/setup.ts
  - [ ] 复制 tests/__mocks__/ 目录结构
  - [ ] 验证 setup.ts 中的配置正确
- [ ] 复制 Taro 组件 mock 和测试依赖配置 (AC: 4)
  - [ ] 复制 tests/__mocks__/taroMock.ts
  - [ ] 复制 tests/__mocks__/styleMock.js
  - [ ] 复制 tests/__mocks__/fileMock.js
  - [ ] 从 mini-test-demo/mini/package.json 复制测试相关依赖
- [ ] 复制基础示例测试文件 (AC: 5)
  - [ ] 复制 tests/example.test.tsx
  - [ ] 复制 tests/components/Button.test.tsx
  - [ ] 复制 tests/components/AreaPicker.test.tsx
  - [ ] 确保测试文件路径映射正确
- [ ] 验证测试环境正常运行 (AC: 6)
  - [ ] 运行 "pnpm test" 验证测试执行
  - [ ] 运行 "pnpm test:coverage" 验证覆盖率报告
  - [ ] 确保所有基础示例测试通过
  - [ ] 验证 Taro 组件 mock 正常工作
- [ ] 不创建新的组件/页面测试 (AC: 7)
  - [ ] 仅迁移 mini-test-demo 中现有的测试文件
  - [ ] 不创建针对 mini 项目特定组件的测试
  - [ ] 保持 starter 项目的轻量级特性

## Dev Notes

### 技术栈信息 [Source: architecture/tech-stack.md]
- **测试框架**: Jest + Testing Library
- **运行时**: Node.js 20.19.2
- **小程序框架**: Taro 4.1.4 + React 18
- **类型系统**: TypeScript 5.4.5
- **构建工具**: Webpack 5.91.0

### 项目结构信息 [Source: architecture/source-tree.md]
- **mini项目位置**: /mnt/code/155-138-template-6/mini/
- **参考模板位置**: /mnt/code/155-138-template-6/mini-test-demo/mini/
- **测试目录结构**:
  - tests/ - 测试根目录
  - tests/__mocks__/ - Mock 文件目录
  - tests/components/ - 组件测试
  - tests/pages/ - 页面测试
  - tests/unit/ - 单元测试
- **配置文件**:
  - jest.config.js - Jest 配置
  - tests/setup.ts - 测试环境设置

### 测试策略信息 [Source: mini-test-demo/mini/jest.config.js]
- **测试匹配模式**: tests/**/*.spec.{ts,tsx}, tests/**/*.test.{ts,tsx}
- **测试环境**: jsdom
- **模块映射**:
  - @/ -> src/
  - ~/ -> tests/
  - @tarojs/taro -> tests/__mocks__/taroMock.ts
- **覆盖率收集**: src/**/*.{ts,tsx}
- **忽略路径**: /node_modules/, /dist/, /coverage/

### Mock 配置信息 [Source: mini-test-demo/mini/tests/__mocks__/]
- **taroMock.ts**: Taro 框架组件的完整 mock
- **styleMock.js**: CSS/LESS/SCSS 样式文件的 mock
- **fileMock.js**: 图片和静态资源文件的 mock

### 需要复制的测试依赖 [Source: mini-test-demo/mini/package.json]
- **测试框架**: jest, ts-jest, @types/jest
- **测试工具**: @testing-library/react, @testing-library/jest-dom
- **测试环境**: jest-environment-jsdom
- **类型定义**: @types/testing-library__jest-dom

### 测试文件迁移清单
- **配置文件**:
  - jest.config.js
  - tests/setup.ts
- **Mock 文件**:
  - tests/__mocks__/taroMock.ts
  - tests/__mocks__/styleMock.js
  - tests/__mocks__/fileMock.js
- **基础测试文件**:
  - tests/example.test.tsx
  - tests/components/Button.test.tsx
  - tests/components/AreaPicker.test.tsx

### Testing
- **测试文件位置**: mini/tests/
- **测试框架**: Jest + Testing Library
- **覆盖率要求**: 基础示例测试通过率 100%
- **测试标准**:
  - 测试环境配置完整
  - 所有基础示例测试通过
  - Taro 组件 mock 正常工作
  - 测试脚本可正常运行
  - 不创建新的测试用例

## Change Log
| Date | Version | Description | Author |
|------|---------|-------------|--------|
| 2025-11-10 | 1.0 | 初始故事创建 | Bob (Scrum Master) |

## Dev Agent Record

### Agent Model Used

### Debug Log References

### Completion Notes List

### File List

## QA Results