From 20d836ab3d9592a5a9a47d7f0e64399afac09bfd Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Sat, 15 Aug 2026 18:07:23 +0800 Subject: [PATCH] test: preserve fee item identifiers --- .../finance-full-fixtures-contract.test.mjs | 6 ++++++ scripts/admin-test-env-modules/finance-full-fixtures.mjs | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/admin-test-env-modules/finance-full-fixtures-contract.test.mjs b/scripts/admin-test-env-modules/finance-full-fixtures-contract.test.mjs index 73ae3735e..097ade99d 100644 --- a/scripts/admin-test-env-modules/finance-full-fixtures-contract.test.mjs +++ b/scripts/admin-test-env-modules/finance-full-fixtures-contract.test.mjs @@ -52,6 +52,12 @@ test('Finance PAYABLE fixture creates an isolated ACTIVE supplier through the fo assert.match(source, /detail\?\.status === 'ACTIVE' && detail\?\.category === category/) }) +test('fee detail writes preserve 19-digit fee item IDs as strings', () => { + assert.doesNotMatch(source, /feeItemId: Number\(/) + assert.match(source, /feeItemId: String\(feeItem\.id\)/) + assert.match(source, /feeItemId: String\(feeItems\.PAYABLE\.id\)/) +}) + test('automatic fee fixture completes the reviewed pricing workflow without recalculating', () => { assert.match(source, /latest\?\.feeId/) assert.doesNotMatch(source, /latest\?\.id/) diff --git a/scripts/admin-test-env-modules/finance-full-fixtures.mjs b/scripts/admin-test-env-modules/finance-full-fixtures.mjs index 49ebdba0e..f1b3c0794 100644 --- a/scripts/admin-test-env-modules/finance-full-fixtures.mjs +++ b/scripts/admin-test-env-modules/finance-full-fixtures.mjs @@ -153,7 +153,7 @@ async function createManualFee(context, resource, feeItem, direction, amount, ba if (context.financeFixtureHooks?.createManualFee) return context.financeFixtureHooks.createManualFee(context, resource, feeItem, direction, amount, basis, businessDate) const basePath = `/api/platform/v1/inbounds/${encodeURIComponent(resource.inboundId)}/fee-details` const listPath = `${basePath}?accountId=${encodeURIComponent(resource.tenantId)}` - const body = { feeItemId: Number(feeItem.id), direction, businessDate, + const body = { feeItemId: String(feeItem.id), direction, businessDate, unitPrice: amount, currency: 'CNY', amount, settlementIncluded: true, partnerId: partner?.id ? String(partner.id) : null, partnerName: partner?.name || null, remark: `${context.marker}-${basis}` } @@ -448,7 +448,7 @@ export async function run(context) { if (containerOwned && feeItems.PAYABLE && supplier?.id) { const basePath = `/api/platform/v1/loading-plans/${encodeURIComponent(container.loadingPlanId)}/fee-details` const path = `${basePath}?accountId=${encodeURIComponent(container.tenantId)}` - const body = { feeItemId: Number(feeItems.PAYABLE.id), direction: 'PAYABLE', businessDate: dateOffset(-2), + const body = { feeItemId: String(feeItems.PAYABLE.id), direction: 'PAYABLE', businessDate: dateOffset(-2), amount: 300, currency: 'CNY', settlementIncluded: true, partnerId: id(supplier.id), partnerName: supplier.name || null, remark: `${context.marker}-CONTAINER_SHARED` } const response = await request(context, 'POST', path, body)