# EveryPublish Web-only V1 测试报告 > 更新:2026-08-21。当前报告只覆盖 Web-only 本机模式;真实平台扫码和发布仍需用户手动验收。 ## 当前实测结论 本轮已用 `EXECUTOR_MODE=mock` 和 `EXECUTOR_MODE=web` 启动实际 Go server,并通过 HTTP 调用跑通: ```text 注册/登录/刷新/me 200,refresh token 轮换,工作区/owner 角色可见 未登录创建任务 401,业务写操作不绕过鉴权 添加 douyin 账号 200 创建网页 QR 挑战 200,kind=qr,qrUrl=mock://... 提交 mock 登录挑战 200,账号 status=active 空挑战确认值 400,挑战保持 active 上传 demo.mp4 200,kind=video 签名素材直链 首次下载 200,重复使用 404/410 创建任务/提交/审核 200 本机 Web executor queued → dispatched → running → success 结果 mock://everypublish/task/ + receipt Browser WebSocket open(新鲜 JWT) 客户端/设备路由 404,不进入网页菜单/流程 任务时间线 6 个事件:draft>pending_review>queued>dispatched>running>success ``` 扩展 smoke 还覆盖:运行时状态、工作区名称更新、成员邀请/加入/查看/权限拒绝/移除、工作区切换后 refresh 保持选中工作区、账号资料更新和重复绑定幂等、mock 凭据导入和登录检查的明确 409、挑战挂起→重发→解决、素材类型筛选/下载/inline 预览和删除、任务驳回→重提→取消、草稿删除、排期设置后清除、通知读全、审计列表、密码修改后重新登录、权限检查。当前输出会带 `coverage` 数组,避免把单条成功任务误认为全量网页验证。 B站 adapter 另有 `httptest` 自动验证:二维码生成与 86101/86090/0 轮询、上下文取消、凭据加密落盘、UPOS 分片真实 `ETag`、merge、CSRF URL 编码、非 2xx 和空素材错误分类。 服务端集成测试还用 fake adapter 验证了 `/accounts/:id/bind` 的真实 handler 链路:生成 QR、后台轮询 pending→confirmed、保存凭据、更新 challenge=solved 和 account=active。 ## 工程检查 | 检查项 | 结果 | 备注 | |---|---|---| | Go server test | 通过 | 含 API、WS、handler、local mock dispatcher 和任务时间线测试 | | Go server vet | 通过 | `go vet ./...` | | Dispatcher adapter 单测 | 通过 | 注册 adapter 的真实执行路径、逐账号结果和 context cancel | | Web TypeScript | 通过 | `npx tsc --noEmit` | | Web production build | 通过 | `npm run build`;仅有 chunk 体积提示 | | Web smoke | 通过 | `cd apps/web && npm test`;分别在 `EXECUTOR_MODE=mock` 和 `EXECUTOR_MODE=web` server 上覆盖认证、权限、挑战、素材、审核、通知、审计、Browser WS 和任务状态机 | | Web lint | 未通过 | 仓库原有 53 个规则错误,主要是字符串拼接/格式;不是本轮 TypeScript/build 阻断项,需后续单独清理 | | 浏览器完整 UI 自动化 | 未完成 | 当前运行环境没有可用浏览器控制服务;API、生产构建和 Browser WS 已实测 | ## 重复回归 最新源码重新编译后:`EXECUTOR_MODE=mock` 连续 3 次、`EXECUTOR_MODE=web` 连续 2 次均通过;加入成员/工作区/排期/密码回归后,8090 最新二进制再次通过。每次时间线均严格为 `draft>pending_review>queued>dispatched>running>success`,未再出现并发轮询造成的重复 `dispatched/running` 事件。 ## 仍需用户手动验收 1. 在账号管理选择 B站并完成真实扫码,确认账号从“等待扫码/已扫码”变为“已绑定”。 2. 选择真实 B站账号和视频素材发布一条测试内容,确认平台页面内容、链接、回执和任务日志。 3. 检查平台风控/验证码/登录过期时挑战、失败和重试是否符合预期。 没有人工扫码时,不能把真实平台登录或真实平台发布写成“已完成”。mock URL 只证明网页任务状态机和本机执行器联调。