Files
beads-group/docs/verification.md
T

6.0 KiB
Raw Blame History

首期验收记录

日期:2026-10-03。此记录区分本机已验证内容与真实部署待验内容,不代表已发布微信小程序。

最终源码验证

检查 结果
applet npm test 12/12,通过;网络选择、过期探测、量化/透明像素/裁剪、画布偏移、幂等回退、提交后刷新失败
applet npm run typecheck 通过
applet npm run build:h5 通过,uni Compiler 5.26
applet npm run build:mp-weixin 通过,输出 dist/build/mp-weixin;未真机运行
webui npm test 3/3,通过;业务错误、鉴权和任务状态机
webui npm run build 类型检查与 Vite 生产构建通过
server go test -count=1 ./... 通过,设置 TEST_DATABASE_URL,真实执行数据库回归,未跳过数据库项
server go vet ./... / go build ./cmd/server 通过
scripts/integration-smoke.mjs 23 项 API 断言通过,4 个并发同键呼叫只创建一个任务
frp 示例 TOML Python tomllib 语法解析通过;未建立实际公网隧道
Docker Compose / Nginx 已提供配置,当前环境没有 Docker,未做容器与 HTTPS 启动验证
依赖审计 webui 0;applet 24(9 high / 15 moderate),详见 dependency-report.md

最终检查包含画布颜色从八位 hex 改为 uni legacy canvas 可识别 rgba 后的构建。开发服务重启以消除旧模块缓存,浏览器确认完成标记不再显示黑色块。

真实联调环境

临时 PostgreSQL 18(127.0.0.1:55432 / perler_test)、Redis(127.0.0.1:56379)与 Gin(127.0.0.1:8080);业务经过真实 PostgreSQL/Redis,没有前端 mock 或内存仓储替代。联调资源在 /tmp,不作为持久部署方案。测试密码仅用于这些本机隔离服务。

数据库测试要求 TEST_DATABASE_URL 指向名称包含 test 的独立数据库。单连接池回归验证收藏查询、图纸打印呼叫和重复提交不会嵌套借连接死锁;幂等测试验证持久唯一键。API 脚本需要显式测试地址及管理员密码:

PERLER_TEST_API_URL=http://127.0.0.1:8080 \
PERLER_TEST_ADMIN_PASSWORD='<隔离测试环境密码>' \
node scripts/integration-smoke.mjs

脚本仅针对 development 环境;它创建私有临时图纸、收藏、到店记录和服务任务,完成后移除收藏并删除测试图纸,保留到店会话与已完成任务作为验证记录。不要对真实门店数据执行该脚本。

浏览器验收

实际完成 H5 演示登录 → 文字「豆」生成 29×29 图纸(143 颗)→ 保存 → 收藏 → 详情跟做标记。滚动/偏移画布点击正确定位行 6 列 7。

顾客输入 T01 到店 → 呼叫员工并附备注「联调验证:请协助检查图纸」→ 后台真实管理员登录 → 接单 → 完成 → 顾客记录显示服务已完成。后台状态筛选可显示完成任务。浏览器还检查了桌面页面与 390×844 iframe 中的顾客首页、后台任务布局;iframe 检查是窄屏布局验证,不冒充手机微信真机测试。

截图:

未执行完整 Lighthouse / Core Web Vitals 实测、读屏器验收或所有设备组合。无障碍已做表单标签、导航/错误/空状态与原生控件基础处理;不能视为 WCAG 完整认证。

独立代码审查

独立只读审查后修复:事务中嵌套借数据库连接、请求 context 取消传播、打印页边界和标尺裁切、画布点击坐标偏移、呼叫成功后的刷新失败误报。修复后复核通过,无剩余重大问题。新增静态托管路径与符号链接隔离、业务异常统一响应的检查;未做独立渗透测试。

门店部署前验收

尚缺真实微信 AppID/密钥、域名和证书、门店网络与打印设备,以下无法在本次本机环境代验:

  • Android/iOS 微信体验版真实登录,合法域名校验开启;图片选取、文字渲染、跟做点击与扫码。
  • 蜂窝直走公网且零内网探测;其他 Wi-Fi 内网失败回退;门店 Wi-Fi 内网 HTTPS 成功;禁用局域网权限、DNS 不可达、证书错误、网络切换等场景。
  • 内网域名证书可信且匹配域名,路由器 DNS/隔离策略允许访问;公网隧道与门店服务的连通、断线恢复。
  • frp/Nginx/Compose 模板实际部署,生产密钥与管理员密码替换,APP_ENV=production,演示数据替换、备份恢复演练。
  • 5 mm 与实际珠板尺寸匹配、50 mm 标尺实测、大图分页与真实打印设备输出。
  • 多桌并发与员工轮询容量;反向代理下登录限流按代理源地址聚合,需按实际规模评估可信代理与限流策略。

当前首期为单店运行;数据归属与 API 预留门店边界,未来多店账号、选店、总部权限与多节点部署需另行实现。

后续增量:WebSocket + TTS(2026-10-03)

后台原 10 秒页面轮询已升级为工作台级 WebSocket 实时通知,60 秒兜底补查;增加本机中文语音提醒。后台测试现为 14 项,构建通过;服务端真实 PostgreSQL/Redis 测试及 race/vet/build 通过。完成顾客呼叫、实时列表与跨页面 TTS 的浏览器联调。详细范围、协议、证据与限制见 语音提醒说明。

当前检查环境(2026-10-03)

按用户要求复用 events-server 的 PostgreSQL 实例 192.168.31.98:5433 与 postgres 用户,创建独立 perler_beads 数据库。后端已连接新库,验证 current_database/current_user 正确,4 张业务表与1个演示门店已初始化。events 库未修改,旧临时库测试数据未迁移。凭据保存在 Git 忽略的 perler-beads-server/.env.local,权限600。Redis 仍使用本机56379。

三端地址5173、5174、8080均返回HTTP200,管理员登录业务码200,通过5174代理的WS鉴权收到ready。三端以后台进程运行,日志位于 /tmp/perler-preview/。