test: align phase five dev acceptance flows

This commit is contained in:
2026-09-02 03:32:35 +08:00
parent f3be06a3e0
commit a4a4306154
13 changed files with 106 additions and 103 deletions
@@ -18,6 +18,7 @@ function nullableText(value) { return value == null || typeof value === 'string'
function nullableIso(value) { return value == null || (typeof value === 'string' && !Number.isNaN(Date.parse(value))) }
function validLongId(value) { return typeof value === 'string' && /^\d{16,}$/.test(value) }
function validNumericId(value) { return typeof value === 'string' && /^\d+$/.test(value) && value !== '0' }
function validOperatorId(value) { return value === '0' || validNumericId(value) }
function validContainerNo(value) {
if (typeof value !== 'string' || !ISO_CONTAINER_PATTERN.test(value)) return false
const letterValues = [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24,
@@ -88,7 +89,7 @@ function validHistory(item) {
return validLongId(item?.id) && Boolean(item?.action)
&& (item?.fromVersion == null || number(item.fromVersion))
&& (item?.toVersion == null || number(item.toVersion))
&& nullableText(item?.reason) && (item?.operatorId == null || validNumericId(item.operatorId))
&& nullableText(item?.reason) && (item?.operatorId == null || validOperatorId(item.operatorId))
&& nullableText(item?.operatorName) && nullableIso(item?.createdAt)
}
@@ -156,7 +157,7 @@ export async function runUntilPickupReady(context) {
const queryId = id(owned.queryId)
const detailResponse = await context.request('GET', `${BASE}/${encodeURIComponent(queryId)}`)
let detail = context.apiSuccess(MODULE, '查询本轮marker-owned船节点详情', detailResponse, `queryId=${queryId}`, OPTIONS)
assertDetail(context, detailResponse, detail, '详情返回Task、十节点DTO、异常与历史结构')
assertDetail(context, detailResponse, detail, '详情返回Task、已记录节点、异常与历史结构')
const initialTask = detail?.query?.query
const ownershipMatches = id(initialTask?.id) === queryId && initialTask?.trackingNo === owned.trackingNo
&& id(initialTask?.oceanBookingId) === id(owned.oceanBookingId)