# moon-miniprogram 验收指南

本指南对应 `0.5.3`。验收对象是仓库源码、Mooncakes 包和可直接导入微信开发者工具的示例。

## 1. 自动化验收

环境要求：Node.js 20+、当前稳定版 MoonBit 工具链。

```bash
moon check
moon test
node scripts/mmp.cjs release
node scripts/smoke.js miniprogram/engine/moon-engine.js
moon fmt --check
```

预期结果：类型检查通过；54 项 MoonBit 测试通过；release 产物写入
`miniprogram/engine/moon-engine.js`；40 项端到端冒烟断言通过；格式检查通过。
测试输出中的路由过滤、重复注册和根键保留警告是对应安全降级测试主动触发的预期日志。

## 2. 微信开发者工具人工验收

先执行 `node scripts/mmp.cjs release`，再在微信开发者工具中导入**仓库根目录**。
`project.config.json` 已配置 `miniprogramRoot` 和 `touristappid`。

1. 首页显示计数 `0`，点击“+1”后变为 `1`。
2. 点击“加入购物车”，共享状态 `cartCount` 增加；进入“关于页”后数值保持一致。
3. 点击标签组件，页面收到 `pick` 自定义事件并显示标签文本。
4. 点击“复制计数”，剪贴板、Toast 和短震动能力被调用。
5. 进入关于页后可返回首页；右上角分享使用 MoonBit 返回的分享卡片配置。

上述流程覆盖 App、页面、组件、事件、自动 diff、跨页 store、声明式路由、wx API
和带返回值生命周期钩子。真机上的剪贴板、震动与分享行为以当前微信客户端权限为准。

## 3. 新项目验收

```bash
node scripts/new.cjs demo
cd demo
moon update
node mmp.cjs check
node mmp.cjs test
node mmp.cjs release
```

将 `demo/` 根目录导入微信开发者工具即可验证 Mooncakes 安装、编译和装配闭环。
