Files
2026-08-27 16:12:37 +08:00

48 lines
2.8 KiB
Markdown

# 插件 → 后端 端到端验证
## 自动化验证(push 模块 → 后端链路,已验证 ✅)
前置:Plan 1 后端在跑(`cd d:/alibb-server/backend && docker compose up -d`,`/api/health` ok)。
```bash
cd d:/alibb && node scripts/e2e-push.mjs
# 预期:ingest status 200, inserted 1
# 然后查:
JWT=$(curl -s -XPOST http://localhost:8080/api/auth/login -H 'Content-Type: application/json' -d '{"username":"admin","password":"admin-password-1234"}' | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>console.log(JSON.parse(s).token))")
curl -s "http://localhost:8080/api/inquiries/E2E-TEST2" -H "Authorization: Bearer $JWT"
# 预期:看到 inquiry + customer + _count.messages=1
```
这验证 `push/payload.js` 组装的 payload 能被 Plan 1 后端 `/api/ingest` 正确接收入库(询盘+客户+消息)。
## 完整插件 e2e(需手动,Chrome 加载扩展)
1. **起后端**:`cd d:/alibb-server/backend && docker compose up -d --build`,等 `curl http://localhost:8080/api/health` → `{"ok":true}`
2. **加载扩展**:Chrome 打开 `chrome://extensions` → 开启「开发者模式」→「加载已解压的扩展程序」→ 选 `d:/alibb`
3. **配置推送**:点插件图标 →「后端设置」区填:
- 服务器 URL:`http://localhost:8080`
- Token:`dev-ingest-token-1234`
- 勾「启用推送」
- 点「授权域名」→ Chrome 弹框点「允许」
- 点「保存设置」→ 看到「推送设置已保存(已启用)」
4. **抓取**:打开 `https://message.alibaba.com/message/default.htm`(登录阿里主账号)→ 点插件「开始抓取」(detail 模式,测试 10 条)
5. **观察**:popup 顶部状态条「推送:已推 N / 待推 M / 失败 K」随抓取增长
6. **验证后端有数据**:
```bash
JWT=$(curl -s -XPOST http://localhost:8080/api/auth/login -H 'Content-Type: application/json' -d '{"username":"admin","password":"admin-password-1234"}' | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>console.log(JSON.parse(s).token))")
curl -s "http://localhost:8080/api/inquiries?size=5" -H "Authorization: Bearer $JWT" | node -e "let s='';process.stdin.on('data',d=>s+=d).on('end',()=>{const d=JSON.parse(s);console.log('total:',d.total);d.items.forEach(i=>console.log(' ',i.inquiryId,i.customer?.country,'msgs:',i.messagesCount))})"
```
预期:看到刚抓的询盘,带 country + messagesCount
7. **验证幂等**:再抓同一询盘 → 后端 `messages_count` 不变(早返回生效)
## 断网/重试验证(防丢)
1. 停后端:`docker compose down`
2. 抓一条 → popup 状态「待推 1」(入 IndexedDB 队列,未丢)
3. 起后端:`docker compose up -d`
4. 等 ~1 分钟(chrome.alarms 触发 worker)→ popup「已推 1」(自动补推)
## 收尾
`cd d:/alibb-server/backend && docker compose down`(volume 保留)