优化
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
- 可直接运行的脚本必须在 `README.md` 登记:用途、目标环境、是否写数据、凭据来源、报告位置、失败/重跑语义和清理边界。内部模块必须登记到 `admin-test-env-modules/README.md`,并按需同步总入口模块注册及依赖展开。
|
||||
- 文件命名使用稳定业务语义:离线 Node 合同以 `.test.mjs` 结尾;环境写入入口显式包含 `test-env` 或在 README 中标记目标环境;fixture/verify 必须区分准备写入和只读核验。
|
||||
- 不在源码、AGENTS、README 或报告中写入密码、Token、私钥、真实客户数据和固定环境密钥;环境地址与账号从入口已支持的参数或本机环境配置读取。
|
||||
- 开发与测试验收配置分别只维护在 `$env:USERPROFILE\.codex\chongchong-global-dev-acceptance.env`、`$env:USERPROFILE\.codex\chongchong-global-test-acceptance.env`。脚本不得自动猜测环境或读取另一份文件;运行者必须通过位于脚本路径之前的 `node --env-file="<明确文件>"` 选择环境。
|
||||
- 不直接写业务数据库伪造 HTTP 验收成功,不吞掉 `deploymentBlocker`、业务错误码、`requestId` 或 `traceId`。造数脚本的部分成功数据默认保留,清理、重置或删除必须另行授权。
|
||||
- 不默认并发运行共享环境造数。只有用户明确要求并确认序号、报告目录和服务容量边界时,才允许拆分 worker;每个 worker 必须使用不重叠序号和独立报告目录。
|
||||
- 修改公共参数、上下文或模块签名时,定向检查总入口、生产模块、fixture、合同测试、README 和调用命令,禁止保留旧参数兼容分支。
|
||||
|
||||
@@ -4,6 +4,41 @@
|
||||
|
||||
进入本目录维护或运行脚本前先读 `scripts/AGENTS.md`;本文件是脚本入口、用途和副作用的唯一总索引,具体模块说明继续下沉到相邻 README。
|
||||
|
||||
## 验收环境变量文件
|
||||
|
||||
开发与测试环境的账号、密码和 Gateway 只维护在用户目录的两份外部文件中,不写入仓库:
|
||||
|
||||
| 环境 | 文件 |
|
||||
|---|---|
|
||||
| 开发环境 | `$env:USERPROFILE\.codex\chongchong-global-dev-acceptance.env` |
|
||||
| 测试环境 | `$env:USERPROFILE\.codex\chongchong-global-test-acceptance.env` |
|
||||
|
||||
两份文件统一提供以下变量:
|
||||
|
||||
```text
|
||||
ADMIN_TEST_GATEWAY
|
||||
ADMIN_OVERSEAS_GATEWAY
|
||||
ADMIN_TEST_USERNAME
|
||||
ADMIN_TEST_PASSWORD
|
||||
MERCHANT_TEST_USERNAME
|
||||
MERCHANT_TEST_PASSWORD
|
||||
```
|
||||
|
||||
脚本只读取当前 Node 进程的环境变量,不会自行查找或加载上述文件。运行时必须把 `--env-file` 放在脚本路径之前,明确选择环境:
|
||||
|
||||
```powershell
|
||||
# 开发环境
|
||||
node --env-file="$env:USERPROFILE\.codex\chongchong-global-dev-acceptance.env" scripts/admin-test-env-acceptance.mjs
|
||||
|
||||
# 测试环境
|
||||
node --env-file="$env:USERPROFILE\.codex\chongchong-global-test-acceptance.env" scripts/admin-test-env-acceptance.mjs
|
||||
|
||||
# 测试环境批量待分柜造数
|
||||
node --env-file="$env:USERPROFILE\.codex\chongchong-global-test-acceptance.env" scripts/it-test-wait-split-bulk.mjs
|
||||
```
|
||||
|
||||
Client 全量、Client 二期、待审核订单和批量待分柜均复用这套变量,不再维护各自的 Gateway、管理员或客户账号变量。外部文件必须保留在仓库之外,不得复制到项目目录、报告或提交记录。
|
||||
|
||||
## 脚本目录归属
|
||||
|
||||
脚本按作用域放置,不要求全部集中到根 `scripts/`:
|
||||
|
||||
@@ -6,6 +6,8 @@ const read = (name) => readFileSync(new URL(name, import.meta.url), 'utf8')
|
||||
const client = read('./client-test-env-acceptance.mjs')
|
||||
const clientPhase2 = read('./client-phase2-test-env-acceptance.mjs')
|
||||
const pendingOrders = read('./create-pending-review-orders.mjs')
|
||||
const readme = read('./README.md')
|
||||
const agents = read('./AGENTS.md')
|
||||
|
||||
const activeHttpScripts = [client, clientPhase2, pendingOrders]
|
||||
const removedEnvironmentVariables = [
|
||||
@@ -35,3 +37,13 @@ test('active scripts no longer carry the retired variables, fixed Gateway, or so
|
||||
assert.doesNotMatch(pendingOrders, /const CONFIG\s*=/)
|
||||
assert.doesNotMatch(pendingOrders, /PASSWORD:\s*'[^']+'/)
|
||||
})
|
||||
|
||||
test('documentation names both external environment files and requires explicit selection', () => {
|
||||
for (const source of [readme, agents]) {
|
||||
assert.match(source, /chongchong-global-dev-acceptance\.env/)
|
||||
assert.match(source, /chongchong-global-test-acceptance\.env/)
|
||||
assert.match(source, /--env-file/)
|
||||
}
|
||||
assert.match(readme, /不会自行查找或加载上述文件/)
|
||||
assert.match(readme, /ADMIN_OVERSEAS_GATEWAY/)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user