diff --git a/scripts/client-test-env-acceptance-contract.test.mjs b/scripts/client-test-env-acceptance-contract.test.mjs
index b10c36c3f..f8231a81c 100644
--- a/scripts/client-test-env-acceptance-contract.test.mjs
+++ b/scripts/client-test-env-acceptance-contract.test.mjs
@@ -253,7 +253,8 @@ function importHarness(fault = '') {
template.set('xl/worksheets/sheet2.xml', `${cells(['国内仓|CN', '目的仓|US', '海运渠道|SEA'], 1)}
`)
bytes = r.orderZipWrite(template)
} else if (request.path.includes('/error-reports/')) {
- bytes = r.orderZipWrite(new Map([['xl/worksheets/sheet1.xml', `${cells(['Excel行号', '错误代码', '错误说明'], 1)}
${cells(['3', 'A0422', 'cargo required'], 2)}
`]]))
+ const physicalRow = fault === 'wrong-error-row' ? '4.0' : '3.0'
+ bytes = r.orderZipWrite(new Map([['xl/worksheets/sheet1.xml', `${cells(['Excel行号', '错误代码', '错误说明'], 1)}
${cells(['3', 'A0422', 'cargo required'], 2).replace(//, `${physicalRow}`)}
`]]))
} else if (request.method === 'POST') {
const file = request.body.get('file'), body = Buffer.from(await file.arrayBuffer())
if (name.startsWith('PARTIAL')) {
@@ -295,3 +296,8 @@ for (const fault of ['leaked-first-row', 'changed-existing-row']) test(`F04 reje
const { r } = importHarness(fault)
await assert.rejects(() => r.orderExcelImportModule(), /unchanged/)
})
+
+test('F04 still rejects a numeric error row pointing to the successful row', async () => {
+ const { r } = importHarness('wrong-error-row')
+ await assert.rejects(() => r.orderExcelImportModule(), /actual Excel error row/)
+})
diff --git a/scripts/client-test-env-acceptance.mjs b/scripts/client-test-env-acceptance.mjs
index 873d730b3..b88d27670 100644
--- a/scripts/client-test-env-acceptance.mjs
+++ b/scripts/client-test-env-acceptance.mjs
@@ -2408,7 +2408,7 @@ async function orderExcelImportModule() {
assertEqual(status, 200, 'error workbook download')
const rows = orderSheetRows(orderZipRead(bytes))
assertEqual(rows.length, 2, 'header and exactly one failed row')
- assertEqual(rows[1].cells[0].text, '3', 'actual Excel error row')
+ assertEqual(Number(rows[1].cells[0].text), 3, 'actual Excel error row')
assertEqual(rows[1].cells[1].text, 'A0422', 'error report code')
assertEqual(rows[1].cells[2].text, errorData.result.items[0].errorMessage, 'error report exact reason')
}, ({ bytes }) => ({ sizeBytes: bytes.length, sha256: createHash('sha256').update(bytes).digest('hex') }))