Files
EveryPublish/docs/web-test-report.md
T

56 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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/<id> + 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 只证明网页任务状态机和本机执行器联调。