fix(overseas): normalize transfer inventory quantities at API boundary

This commit is contained in:
2026-10-04 22:26:36 +08:00
parent 939cc11d7b
commit ea24496b11
7 changed files with 90 additions and 14 deletions
@@ -0,0 +1,11 @@
import { describe, expect, it } from 'vitest'
import { normalizeWarehouseTransferQuantity } from './warehouseTransferQuantities'
describe('warehouse transfer quantity wire normalization', () => {
it.each([{ value: '3', result: 3 }, { value: '0', result: 0 }, { value: 3, result: 3 }, { value: 0, result: 0 }, { value: '9007199254740991', result: Number.MAX_SAFE_INTEGER }])('normalizes $value to a safe integer', ({ value, result }) => {
expect(normalizeWarehouseTransferQuantity(value, '箱数')).toBe(result)
})
it.each([{ value: '' }, { value: ' ' }, { value: null }, { value: undefined }, { value: true }, { value: false }, { value: '1.5' }, { value: 1.5 }, { value: '-1' }, { value: -1 }, { value: '1e2' }, { value: ' 3' }, { value: '3 ' }, { value: '0x3' }, { value: '9007199254740992' }, { value: Number.MAX_SAFE_INTEGER + 1 }, { value: Infinity }, { value: NaN }, { value: [] }, { value: {} }])('rejects invalid or ambiguous $value', ({ value }) => {
expect(() => normalizeWarehouseTransferQuantity(value, '箱数')).toThrow('箱数返回格式无效')
})
})