# Mock 模块说明

> **创建时间**: 2026-03-19 (北京时间)  
> **用途**: 低侵入Mock方案实现  
> **AI注意**: 此目录下所有文件均为Mock实现，不是真实业务逻辑

---

## 📁 目录结构

```
/mock
  /data                 ← Mock数据定义
    certificate.mock.ts ← 证书Mock数据
    product.mock.ts     ← 产品Mock数据 (待实现)
    order.mock.ts       ← 订单Mock数据 (待实现)
    user.mock.ts        ← 用户Mock数据 (待实现)
  msw.ts                ← MSW配置主文件
  browser.ts            ← 浏览器环境入口
  server.ts             ← Node/测试环境入口 (待实现)
  README.md             ← 本文件
```

---

## 🚀 快速开始

### 1. 启用Mock模式

在 `.env.development` 中设置:

```bash
REACT_APP_USE_MOCK=true
```

### 2. 启动应用

```bash
npm run dev
```

### 3. 查看Mock日志

打开浏览器控制台，可以看到MSW拦截日志:

```
[MSW] Starting Mock Service Worker...
[MSW] Mock Service Worker started
[MSW] GET /api/v1/certificate/certificates {status: null, type: null, ...}
```

---

## 📋 使用指南

### 在组件中使用

```typescript
import { certificateDataSource } from '@/services/certificateDataSource';

// 查询列表
const certificates = await certificateDataSource.list({ status: 'APPROVED' });

// 获取详情
const cert = await certificateDataSource.detail('1');

// 创建
const newCert = await certificateDataSource.create({
  name: '新证书',
  type: 'PRODUCT_CERT',
  expiryDate: '2027-12-31',
});
```

### 添加新的Mock API

1. 在 `/mock/data/` 下创建数据文件
2. 在 `/mock/msw.ts` 中添加handler
3. 在DataSource中实现对应方法

---

## ⚠️ 重要提示

### AI协作规范

1. **Mock ≠ 真实逻辑**: 此目录下代码仅用于开发和测试
2. **不修改业务代码**: Mock层不应影响业务组件代码
3. **环境隔离**: 生产环境自动禁用Mock
4. **类型安全**: Mock数据必须符合TypeScript类型定义

### 环境变量

| 变量名 | 值 | 说明 |
|--------|-----|------|
| REACT_APP_USE_MOCK | true | 启用Mock模式 |
| REACT_APP_USE_MOCK | false | 禁用Mock模式，使用真实API |

---

## 🔗 相关文档

- [Mock架构设计](../../docs/01_Architecture/Mock_Architecture.md)
- [DataSource抽象层](../services/certificateDataSource.ts)
- [MSW官方文档](https://mswjs.io/docs/)

---

*本模块遵循 Crawlful Hub 低侵入Mock架构规范*
