Files
baiyue-firstleg/scripts/admin-test-env-modules
2026-08-13 18:34:44 +08:00
..
2026-08-08 10:11:04 +08:00
2026-08-13 15:59:05 +08:00
2026-08-13 16:58:17 +08:00
2026-08-13 17:24:40 +08:00
2026-08-13 17:24:40 +08:00
2026-08-08 10:11:04 +08:00
2026-08-13 16:58:17 +08:00
2026-08-13 16:58:17 +08:00
2026-08-13 16:58:17 +08:00
2026-08-12 18:00:17 +08:00
2026-08-12 18:00:17 +08:00
2026-08-12 17:34:03 +08:00
2026-08-12 17:34:03 +08:00
2026-08-12 18:00:17 +08:00
2026-08-13 18:34:44 +08:00
2026-08-13 18:34:44 +08:00
2026-08-13 14:37:51 +08:00
2026-08-13 14:37:51 +08:00
2026-08-13 16:58:17 +08:00
2026-08-13 14:37:51 +08:00
2026-08-08 10:11:04 +08:00
2026-08-13 14:55:50 +08:00
2026-08-13 09:49:55 +08:00
2026-08-13 09:49:55 +08:00
2026-08-12 20:36:11 +08:00
2026-08-13 16:14:54 +08:00
2026-08-13 16:14:54 +08:00
2026-08-13 16:14:54 +08:00
2026-08-13 16:14:54 +08:00
2026-08-13 14:55:50 +08:00
2026-08-13 18:34:44 +08:00
2026-08-12 09:25:53 +08:00
2026-08-13 16:14:54 +08:00
2026-08-13 14:55:50 +08:00
2026-08-13 14:03:54 +08:00
2026-08-12 12:35:29 +08:00
2026-08-12 12:35:29 +08:00
2026-08-13 14:55:50 +08:00
2026-08-12 10:59:39 +08:00
2026-08-13 16:14:54 +08:00
2026-08-13 16:14:54 +08:00
2026-08-08 10:11:04 +08:00
2026-08-13 16:14:54 +08:00
2026-08-08 15:25:46 +08:00
2026-08-08 11:33:18 +08:00
2026-08-13 11:57:33 +08:00
2026-08-13 11:57:33 +08:00
2026-08-13 11:57:33 +08:00
2026-08-13 17:14:46 +08:00
2026-08-13 17:14:46 +08:00

Admin 测试环境 HTTP 模块

总入口是 ../admin-test-env-acceptance.mjs。每个业务模块使用独立的同名 .mjs 文件,避免多个对话同时修改总入口。

例如 --modules system,inbound-weight-ocr 会依次加载:

  • system.mjs
  • inbound-weight-ocr.mjs

模块只需导出:

export async function run(context) {
  const response = await context.request('GET', '/api/platform/v1/example')
  const data = context.apiSuccess('example', '查询示例', response)
  context.assert('example', '示例结构正确', response, Array.isArray(data), `count=${data?.length ?? 'n/a'}`)
}

可用上下文

  • request(method, path, body?, token?, extraHeaders?):JSON HTTP 请求,自动使用平台 Token;幂等写操作通过 extraHeaders 传 Idempotency-Key。
  • requestBinary(method, path):文件下载,不把二进制写入报告。
  • apiSuccess(module, name, response, evidence?, options?):断言 HTTP 200 + body code 200,成功时返回 data。
  • assert(module, name, response, condition, evidence, options?):业务断言。
  • expectConflict(module, name, response, scenario):断言并发冲突。
  • addStep(...):写入统一步骤报告。
  • marker:本轮唯一测试标记。
  • createdResources:登记测试资源 ID。
  • context:模块间共享少量 ID;模块应尽量独立。

约束

  • 不记录密码、Token、图片二进制或 OCR 原文全文。
  • 测试数据必须带 context.marker;可删除的清理,不能删除的最终停用。
  • 缺少已确认契约时记录失败或 deploymentBlocker,不得模拟成功。
  • 一个模块只修改自己的 .mjs,不要修改其他模块文件。

供应商模块

suppliers.mjs 覆盖平台公共供应商的列表、统计、新增、详情、编辑、启停及主要错误边界。执行:

node scripts/admin-test-env-acceptance.mjs --modules suppliers

该命令会调用测试环境写 API,只有当前对话明确授权后才允许执行。验收供应商最终停用但不删除;静态合同可安全离线运行:

node --test scripts/admin-test-env-modules/suppliers-contract.test.mjs

国内整柜与客户运营统计

  • domestic-container.mjs:整柜入库、出库、库存列表和详情;静态契约为 domestic-container-contract.test.mjs。
  • customer-operating-statistics.mjs:客户详情在途柜量/TEU 运营指标,复用 platform:firstleg:container:list 权限。
  • 两者由总入口 admin-test-env-acceptance.mjs 的默认模块列表编排;接口验收会写入测试数据,静态合同可离线执行。
node --test scripts/admin-test-env-modules/domestic-container-contract.test.mjs

清库后的商户下单前置

merchant-qualification-fixture.mjs 是默认全量验收的首个模块。它通过平台正式接口创建本轮隔离客户,经 File 上传真实营业执照和法人身份证文件,再走 IAM 提交审核和平台审核通过;审核完成后把本轮动态加载模块使用的商户账号切换到该客户。

依赖商户下单资格的模块不要单独运行。定向排查时至少保留前置模块,例如:

node scripts/admin-test-env-acceptance.mjs --modules merchant-qualification-fixture,orders

该前置不会向初始化 SQL 写入伪造资质,也不会绕过订单服务的企业资格校验。静态契约可离线执行:

node --test scripts/admin-test-env-modules/merchant-qualification-fixture-contract.test.mjs