Files
yovision/Bell/ACCEPTANCE.md
T

2.5 KiB

Bell 独立纵切验收

本验收只使用 Bell 自身、临时 PostgreSQL 和项目内合成事件,不启动或调用 Sense、Brain,不连接默认 5432、生产数据库或客户数据。

固定工具链

$env:GOTOOLCHAIN='go1.26.5'
go version
node --version
corepack pnpm@9.15.1 --version

预期分别为 Go 1.26.5、Node 22.22.1、pnpm 9.15.1。

源码验证

Set-Location Bell\server
$env:GOTOOLCHAIN='go1.26.5'
go test ./... -count=1
go vet ./...
go build ./...

Set-Location ..\ui
corepack pnpm@9.15.1 install --frozen-lockfile
corepack pnpm@9.15.1 lint
corepack pnpm@9.15.1 test:unit --runInBand
corepack pnpm@9.15.1 build:prod

Windows 包和隔离 E2E

Set-Location <仓库根目录>
Bell\scripts\build\build-windows.bat
pwsh -NoProfile -File Bell\scripts\build\test-package.ps1 -PackageRoot Bell\dist\bell-windows-amd64
pwsh -NoProfile -File Bell\scripts\test-independent-e2e.ps1 -PreparedPackageRoot Bell\dist\bell-windows-amd64

E2E 自动完成并清理:临时 PostgreSQL、随机数据库/HTTP 端口、随机管理员/处置员凭据、迁移、健康检查、登录/RBAC、最小 Bell 菜单、规则、合成 Event/Receipt 幂等、Alert、20 路并发 ack、越权/缺参拒绝、close 重放幂等、两条生命周期时间线、冷重启、Windows stop 和日志泄密检查。原始包保持生产配置并先通过审计;业务自动化只把临时包副本切换为 dev 测试模式。生产验证码的获取、正确登录、错误及重放拒绝由 #138 的 Bell/server/tests/bell_production_login/run-postgres.ps1 覆盖,不暴露或识别验证码答案。

浏览器验收打开脚本输出的临时 base_url,检查:

  • 匿名访问跳转登录页,并显示验证码输入;测试模式可填写任意非空验证码,生产验证码行为由 #138 回归覆盖;
  • 登录后保留 GoAdmin 侧栏、顶部导航和标签页;
  • 管理员显示 Bell 必要业务菜单,包括预警管理、事件查询、规则配置;处置员仅显示预警处理所需入口;
  • 预警详情可显示关联事件、处理人、现场结果和两条处理时间线;
  • 不显示开发工具、定时任务、系统监控等无关入口。

仓库闭环

python dev_scripts/harness.py check --strict
git diff --check
git status --short --branch

浏览器人工/工具检查、真实生产数据库、客户网络和长期负载不由 API 单测替代;未执行的项目必须在工单证据中明确说明。