This commit is contained in:
2026-09-01 11:38:42 +08:00
parent 68b584128c
commit 9a3b408de0
7 changed files with 82 additions and 46 deletions
+11 -11
View File
@@ -5,8 +5,8 @@
*
* Run directly and enter the platform/client test credentials when prompted.
* Optional environment variables for CI:
* CLIENT_TEST_GATEWAY, PLATFORM_USERNAME, EXISTING_CLIENT_USERNAME,
* PLATFORM_PASSWORD, EXISTING_CLIENT_PASSWORD, CLIENT_TEST_REPORT_DIR
* ADMIN_TEST_GATEWAY, ADMIN_TEST_USERNAME, ADMIN_TEST_PASSWORD,
* MERCHANT_TEST_USERNAME, MERCHANT_TEST_PASSWORD, CLIENT_TEST_REPORT_DIR
*
* Example:
* node scripts/client-test-env-acceptance.mjs
@@ -18,20 +18,20 @@ import { resolve } from 'node:path'
import { createInterface } from 'node:readline/promises'
const args = parseArgs(process.argv.slice(2))
const gateway = trimSlash(args.gateway ?? process.env.CLIENT_TEST_GATEWAY ?? 'http://8.163.30.128:9000')
const platformUsername = args['platform-username'] ?? process.env.PLATFORM_USERNAME
?? await promptText('平台审核账号', 'platform_admin')
const platformPassword = args['platform-password'] ?? process.env.PLATFORM_PASSWORD
const gateway = trimSlash(args.gateway ?? process.env.ADMIN_TEST_GATEWAY)
const platformUsername = args['platform-username'] ?? process.env.ADMIN_TEST_USERNAME
?? await promptText('平台审核账号', '')
const platformPassword = args['platform-password'] ?? process.env.ADMIN_TEST_PASSWORD
?? await promptSecret('平台审核密码')
const existingClientUsername = args['existing-client-username'] ?? process.env.EXISTING_CLIENT_USERNAME
const existingClientUsername = args['existing-client-username'] ?? process.env.MERCHANT_TEST_USERNAME
?? await promptText('跨客户隔离测试账号(必须由正式注册/建档产生)', '')
const existingClientPassword = args['existing-client-password'] ?? process.env.EXISTING_CLIENT_PASSWORD
const existingClientPassword = args['existing-client-password'] ?? process.env.MERCHANT_TEST_PASSWORD
?? await promptSecret('跨客户隔离测试密码')
const reportDir = resolve(args['report-dir'] ?? process.env.CLIENT_TEST_REPORT_DIR ?? 'reports')
const timeoutMs = Number(args['timeout-ms'] ?? process.env.CLIENT_TEST_TIMEOUT_MS ?? 30_000)
if (!platformPassword || !existingClientUsername || !existingClientPassword) {
console.error('Platform password and an independently onboarded client account are required')
if (!gateway || !platformUsername || !platformPassword || !existingClientUsername || !existingClientPassword) {
console.error('ADMIN_TEST_GATEWAY, platform credentials, and an independently onboarded client account are required')
process.exit(2)
}
if (!Number.isFinite(timeoutMs) || timeoutMs < 1_000) {
@@ -1290,7 +1290,7 @@ async function orderLifecycleModule() {
async function isolationModule() {
if (!existingClientUsername || !existingClientPassword) {
recordSkipped('isolation', 'cross-client order access is rejected',
'Set EXISTING_CLIENT_USERNAME and EXISTING_CLIENT_PASSWORD to enable this check')
'Set MERCHANT_TEST_USERNAME and MERCHANT_TEST_PASSWORD to enable this check')
return
}
const login = await apiStep('isolation', 'existing client login', {