test(acceptance): align automatic preload workflows
This commit is contained in:
@@ -335,7 +335,8 @@ export function parseArguments(argv) {
|
||||
channelCode: values.get('channel-code') || '',
|
||||
orderProfileMode: values.get('order-profile-mode') || 'fixed',
|
||||
waitSplitCount: Number(values.get('wait-split-count') || process.env.ADMIN_WAIT_SPLIT_COUNT
|
||||
|| (modules.includes('manual-order-splitting-fixture') ? 6 : 1)),
|
||||
|| (modules.includes('coload-groups') ? 8
|
||||
: modules.includes('manual-order-splitting-fixture') ? 6 : 1)),
|
||||
waitSplitPackageCount: Number(values.get('wait-split-package-count') || 0),
|
||||
waitSplitSequence: Number(values.get('wait-split-sequence') || 1),
|
||||
waitSplitRandomValue: Number(values.get('wait-split-random-value') || values.get('wait-split-sequence') || 1),
|
||||
@@ -826,7 +827,7 @@ export class AcceptanceRun {
|
||||
this.context.phase3LoadingIncrementalPackageCount = variant.packageCountPerSku
|
||||
const profile = this.options.orderProfileMode === 'randomized'
|
||||
? this.randomizedOrderProfile(sequence)
|
||||
: { destinationType: 'FBA', fulfillmentType: 'STANDARD', pickupMethod: 'PICKUP',
|
||||
: { destinationType: 'FBA', fulfillmentType: 'STANDARD', pickupMethod: 'SELF_EXPRESS',
|
||||
taxMode: 'BUY_DECLARATION', containerMode: 'LCL', customsInspection: false }
|
||||
this.context.orderProfile = profile
|
||||
this.context.orderDestinationType = profile.destinationType
|
||||
@@ -1058,15 +1059,30 @@ export class AcceptanceRun {
|
||||
&& /[A-Za-z]/.test(createData.temporaryPassword) && /\d/.test(createData.temporaryPassword),
|
||||
`generated=${typeof createData.temporaryPassword === 'string'}, length=${createData.temporaryPassword?.length || 0}`,
|
||||
ownerProvisioningOptions)
|
||||
this.assert(module, '管理员用户名默认使用联系电话', createResponse,
|
||||
createData.administratorUsername === phone,
|
||||
`matches=${createData.administratorUsername === phone}`,
|
||||
const administratorUsername = String(createData.administratorUsername || '')
|
||||
this.assert(module, '管理员用户名作为独立登录标识返回', createResponse,
|
||||
administratorUsername.length > 0,
|
||||
`present=${administratorUsername.length > 0}`,
|
||||
ownerProvisioningOptions)
|
||||
this.assert(module, '待完善客户的审核字段保持为空', createResponse,
|
||||
customer.unifiedSocialCreditCode == null && customer.approvedAt == null,
|
||||
`creditCode=${customer.unifiedSocialCreditCode ?? 'omitted'}, approvedAt=${customer.approvedAt ?? 'omitted'}`)
|
||||
|
||||
await this.runCustomerDimensionRules(tenantId)
|
||||
const dimensionInitializationPath = `/api/platform/v1/iam/tenants/${tenantId}/dimension-initialization`
|
||||
let dimensionInitializationResponse = null
|
||||
let dimensionInitialization = null
|
||||
for (let attempt = 0; attempt < 30; attempt += 1) {
|
||||
dimensionInitializationResponse = await this.request('GET', dimensionInitializationPath)
|
||||
dimensionInitialization = dimensionInitializationResponse.http === 200
|
||||
&& String(dimensionInitializationResponse.body?.code) === '200'
|
||||
? dimensionInitializationResponse.body?.data : null
|
||||
if (dimensionInitialization?.status === 'READY') break
|
||||
if (attempt < 29) await new Promise((resolve) => setTimeout(resolve, 1_000))
|
||||
}
|
||||
this.assert(module, '客户默认尺寸异步初始化完成', dimensionInitializationResponse,
|
||||
dimensionInitialization?.status === 'READY',
|
||||
`status=${dimensionInitialization?.status || 'missing'}`, ownerProvisioningOptions)
|
||||
if (dimensionInitialization?.status === 'READY') await this.runCustomerDimensionRules(tenantId)
|
||||
|
||||
const listResponse = await this.request('GET', `/api/platform/v1/iam/tenants?page=1&size=20&keyword=${encodeURIComponent(payload.tenantName)}`)
|
||||
const page = this.apiSuccess(module, '查询客户列表', listResponse); const listed = page?.records?.find((item) => String(item.id) === tenantId)
|
||||
@@ -1136,9 +1152,9 @@ export class AcceptanceRun {
|
||||
}
|
||||
const memberResponse = await this.request('GET', `${detailPath}/members`); const members = this.apiSuccess(module, '业务概况查询成员', memberResponse)
|
||||
const owner = members?.find?.((item) => item.memberType === 'OWNER')
|
||||
this.assert(module, '联系电话账号是企业管理员', memberResponse,
|
||||
owner?.username === phone,
|
||||
`ownerFound=${Boolean(owner)}, matches=${owner?.username === phone}`,
|
||||
this.assert(module, '独立用户名账号是企业管理员且联系电话不承担用户名约束', memberResponse,
|
||||
owner?.username === administratorUsername,
|
||||
`ownerFound=${Boolean(owner)}, matches=${owner?.username === administratorUsername}`,
|
||||
ownerProvisioningOptions)
|
||||
const countResponse = await this.request('GET', `/api/platform/v1/orders/first-leg/tenant-counts?tenantIds=${tenantId}`); const counts = this.apiSuccess(module, '业务概况查询运单数量', countResponse); const count = counts?.find?.((item) => String(item.tenantId) === tenantId)
|
||||
this.assert(module, '业务概况返回当前客户运单数', countResponse, count && Number.isFinite(Number(count.orderCount)), `orderCount=${count?.orderCount ?? 'missing'}`)
|
||||
|
||||
Reference in New Issue
Block a user