diff --git a/scripts/client-test-env-acceptance-contract.test.mjs b/scripts/client-test-env-acceptance-contract.test.mjs index f8231a81c..3833f3d1e 100644 --- a/scripts/client-test-env-acceptance-contract.test.mjs +++ b/scripts/client-test-env-acceptance-contract.test.mjs @@ -271,11 +271,11 @@ function importHarness(fault = '') { addDraft('leaked-first', parsed[0]) } if (fault === 'changed-existing-row') orders.get('second').order.customerRemark = 'incorrectly-overwritten' - } else code = 'A0422' + } else code = name === 'reject over five MiB' ? 'A0400' : 'A0422' } else if (request.path.includes('?page=')) { data = { page: 1, total: orders.size, records: [...orders.keys()].map(orderId => ({ orderId })) } } else data = structuredClone(orders.get(request.path.split('/').at(-1))) - const response = { status: 200, headers: new Map([['content-type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']]), bytes, json: { code, data } } + const response = { status: 200, headers: new Map([['content-type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']]), bytes, json: { code, data, message: code === 'A0400' ? '上传文件超过服务允许大小' : undefined } } validate(response); return response }, }) diff --git a/scripts/client-test-env-acceptance.mjs b/scripts/client-test-env-acceptance.mjs index b88d27670..2fefd232e 100644 --- a/scripts/client-test-env-acceptance.mjs +++ b/scripts/client-test-env-acceptance.mjs @@ -2441,7 +2441,11 @@ async function orderExcelImportModule() { missingHeader.set('xl/worksheets/sheet1.xml', missingHeader.get('xl/worksheets/sheet1.xml').replace(/]*\br="2"[^>]*>[\s\S]*?<\/row>/, '')) invalidCases.push(['missing Chinese headers', orderZipWrite(missingHeader), 'orders.xlsx']) for (const [name, bytes, filename] of invalidCases) { - await upload(`reject ${name}`, 'ATOMIC', newIdempotencyKey('excel-invalid'), bytes, rejection('A0422'), filename) + await upload(`reject ${name}`, 'ATOMIC', newIdempotencyKey('excel-invalid'), bytes, response => { + // Multipart rejects the oversized file before the import service validates its contents. + rejection(name === 'over five MiB' ? 'A0400' : 'A0422')(response) + if (name === 'over five MiB') assertTrue(/上传文件.*(?:超过|大小)/.test(response.json.message), 'explicit upload size rejection') + }, filename) await importOrderSet(`${name}: order set unchanged`, seeded) } const forged = makeRow('forged-catalog'); forged[3] = `FORGED-${marker}`