Files
alibaba/scripts/e2e-plugin.md
T
2026-08-27 16:12:37 +08:00

2.8 KiB

插件 → 后端 端到端验证

自动化验证(push 模块 → 后端链路,已验证 ✅)

前置:Plan 1 后端在跑(cd d:/alibb-server/backend && docker compose up -d,/api/health ok)。

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. 验证后端有数据:
    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 保留)