# moon-miniprogram 验收指南

本指南对应 `0.6.1`。验收对象是仓库源码、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
```

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

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

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

1. 首页显示三条示例账目和合计 `¥102.00`，分类筛选结果正确。
2. 新增页面空提交显示校验错误；填写名称、金额和分类后保存，首页与统计页同步更新。
3. 编辑一条账目后记录数量不变、内容更新；删除后本地缓存同步更新。
4. 关闭并重新打开小程序，已保存账目仍能恢复；删除全部记录后显示空状态。
5. 复制摘要触发剪贴板与 Toast；右上角分享使用 MoonBit 返回的分享卡片配置。

上述流程覆盖强类型 reducer、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 安装、编译和装配闭环。
