From 1c4f35f61c20a2082ae6c277accaf5f844531ef7 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Wed, 9 Sep 2026 18:34:07 +0800 Subject: [PATCH] test: verify manual inbound unit price flow --- .../inbound-fees-contract.test.mjs | 3 +++ scripts/admin-test-env-modules/inbound-fees.mjs | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/admin-test-env-modules/inbound-fees-contract.test.mjs b/scripts/admin-test-env-modules/inbound-fees-contract.test.mjs index 0aca65035..e20b644b0 100644 --- a/scripts/admin-test-env-modules/inbound-fees-contract.test.mjs +++ b/scripts/admin-test-env-modules/inbound-fees-contract.test.mjs @@ -27,4 +27,7 @@ test('inbound fee lifecycle covers frozen source, version, publication and WAIT_ test('automatic fee adjustment confirms the ten percent tolerance boundary', async () => { const source = await readFile(moduleFile, 'utf8') assert.match(source, /reason: `\$\{context\.marker\}-自动费用版本调整`, toleranceConfirmed: true/) + assert.match(source, /adjustedUnitPrice = Number\(\(Math\.max\(0, money\(initial\.unitPrice\)\) \+ 0\.37\)\.toFixed\(4\)\)/) + assert.match(source, /人工对客单价写入最新费用版本/) + assert.match(source, /money\(published\?\.unitPrice\) === adjustedUnitPrice/) }) diff --git a/scripts/admin-test-env-modules/inbound-fees.mjs b/scripts/admin-test-env-modules/inbound-fees.mjs index 2d35c0b4c..433f192ff 100644 --- a/scripts/admin-test-env-modules/inbound-fees.mjs +++ b/scripts/admin-test-env-modules/inbound-fees.mjs @@ -66,7 +66,7 @@ export async function run(context) { } const adjustedQuantity = Math.max(0.0001, money(initial.chargeableQuantity) + 0.01) - const adjustedUnitPrice = Math.max(0, money(initial.unitPrice)) + const adjustedUnitPrice = Number((Math.max(0, money(initial.unitPrice)) + 0.37).toFixed(4)) const adjustedAdditional = money(initial.additionalAmount) + 0.01 const adjustResponse = await context.request('PUT', `/api/platform/v1/inbounds/${encodeURIComponent(inboundId)}/fees/published?tenantId=${encodeURIComponent(tenantId)}`, @@ -79,6 +79,9 @@ export async function run(context) { Number(adjusted?.feeVersion) > Number(initial.feeVersion) && adjusted?.feeStatus === 'CALCULATED' && adjusted?.nextProcessStatus === 'WAIT_SPLIT' && money(adjusted?.totalAmount) >= adjustedAdditional, `oldVersion=${initial.feeVersion}, newVersion=${adjusted?.feeVersion ?? 'missing'}, status=${adjusted?.feeStatus || 'missing'}, process=${adjusted?.nextProcessStatus || 'missing'}`, OPTIONS) + context.assert(MODULE, '人工对客单价写入最新费用版本', adjustResponse, + money(adjusted?.unitPrice) === adjustedUnitPrice, + `referenceUnitPrice=${initial.unitPrice ?? 'missing'}, selectedUnitPrice=${adjustedUnitPrice}, persistedUnitPrice=${adjusted?.unitPrice ?? 'missing'}`, OPTIONS) if (!adjusted?.feeId) { finish(context, start); return } const adjustedDetails = await listDetails(context, tenantId, inboundId, '回查调整后的派生详情版本') @@ -108,7 +111,10 @@ export async function run(context) { && id(row.sourceFeeId) === id(sent?.feeId)) context.assert(MODULE, '仅人工发布后费用为 SENT 且派生明细为 PUBLISHED', sendResponse, sent?.feeStatus === 'SENT' && sent?.nextProcessStatus === 'WAIT_SPLIT' - && published?.publicationStatus === 'PUBLISHED' && published?.reviewStatus === 'APPROVED', + && money(sent?.unitPrice) === adjustedUnitPrice + && published?.publicationStatus === 'PUBLISHED' && published?.reviewStatus === 'APPROVED' + && money(published?.unitPrice) === adjustedUnitPrice + && money(published?.amount) === money(sent?.totalAmount), `status=${sent?.feeStatus || 'missing'}, process=${sent?.nextProcessStatus || 'missing'}, publication=${published?.publicationStatus || 'missing'}`, OPTIONS) const feeItemsResponse = await context.request('GET', '/api/platform/v1/fee-items?page=1&size=200&status=ACTIVE')