diff --git a/src/modules/order-management/api/deliveryOrders.ts b/src/modules/order-management/api/deliveryOrders.ts index 1598108..a4859b6 100644 --- a/src/modules/order-management/api/deliveryOrders.ts +++ b/src/modules/order-management/api/deliveryOrders.ts @@ -49,6 +49,7 @@ export interface DeliveryRow { driverName: string | null palletCount: number packageCount: number + signedPackages: number | null totalWeightKg: number | null totalVolumeCbm: number | null plannedDeliveryAt: string diff --git a/src/modules/order-management/deliveryOrders.test.mjs b/src/modules/order-management/deliveryOrders.test.mjs index ded9b86..e321608 100644 --- a/src/modules/order-management/deliveryOrders.test.mjs +++ b/src/modules/order-management/deliveryOrders.test.mjs @@ -18,6 +18,18 @@ async function importTypeScriptModule(source) { return import(`data:text/javascript;base64,${Buffer.from(compiled).toString('base64')}`) } +for (const signedPackages of [null, 0, 3]) test(`preserves actual signed quantity ${signedPackages} in merchant list and detail`, async () => { + const api = await importTypeScriptModule(apiSource.replace( + "import { apiBlobRequest, apiRequest } from '@/api/http'", + `const apiBlobRequest = async () => new Blob([]) + const order = { deliveryNo: 'DL-1', packageCount: 9, signedPackages: ${JSON.stringify(signedPackages)} } + const apiRequest = async (config) => config.url.endsWith('/DL-1') + ? { order, skus: [], fees: [] } : { records: [order], page: 1, size: 20, total: 1, pages: 1 }`, + )) + assert.equal((await api.listDeliveryOrders({ page: 1, size: 20 })).records[0].signedPackages, signedPackages) + assert.equal((await api.getDeliveryOrder('DL-1')).signedPackages, signedPackages) +}) + test('uses only authenticated merchant delivery endpoints without customer scope or mock fallback', () => { assert.match(apiSource, /method: 'GET'[\s\S]*url: '\/merchant\/v1\/last-leg\/delivery-orders'/) assert.match(apiSource, /delivery-orders\/\$\{encodeURIComponent\(deliveryNo\)\}/)