import assert from 'node:assert/strict' import { readFileSync } from 'node:fs' import test from 'node:test' const firstLeg = readFileSync(new URL('./FirstLegOrdersView.vue', import.meta.url), 'utf8') const quickOrder = readFileSync(new URL('./QuickOrderView.vue', import.meta.url), 'utf8') const customs = readFileSync(new URL('../components/CustomsDocumentsDialog.vue', import.meta.url), 'utf8') const overseas = readFileSync(new URL('../../overseas-warehouse/views/WarehouseServiceView.vue', import.meta.url), 'utf8') test('uses business identifiers and names without visible internal-ID fallbacks', () => { assert.match(firstLeg, /label: '入仓码'/) assert.doesNotMatch(firstLeg, /label: '订单号'/) assert.match(firstLeg, /key: 'inboundCode', label: '入仓码',[^\n]*fixed: 'left'/) assert.match(firstLeg, /label: '柜号 \/ 柜次'/) assert.match(firstLeg, /label: '国内收货仓'/) assert.doesNotMatch(quickOrder, /result\.orderNo \|\| `草稿 \$\{result\.draftId\}`/) assert.doesNotMatch(quickOrder, /item\.orderNo \|\| item\.draftId/) assert.doesNotMatch(quickOrder, />\{\{ result\.orderNo/) assert.doesNotMatch(customs, /detail\.planNo \|\| detail\.loadingPlanId/) assert.doesNotMatch(overseas, /overseasWarehouseName \|\| (?:item|candidate)\.overseasWarehouseId/) assert.doesNotMatch(overseas, /row\(\[[^\]]*(?:item\.overseasWarehouseId|item\.operatingWarehouseId)/) }) test('keeps internal IDs only as non-rendered routing, selection, and request values', () => { assert.match(quickOrder, /params: \{ draftId: result\.draftId \}/) assert.match(customs, /uploadMerchantCustomsDocument\(detail\.value\.loadingPlanId/) assert.match(overseas, /:value="candidate\.orderId"/) assert.match(firstLeg, /params: \{ orderId: order\.id \}/) }) test('keeps overseas warehouse operations first and renders readable list values', () => { assert.match(overseas, /columns: \['操作', '贴标申请单号'/) assert.match(overseas, /columns: \['操作', '转运单号'/) assert.match(overseas, /columns: \['操作', '废弃申请单号'/) assert.match(overseas, /function statusLabel\(value: string\)/) assert.match(overseas, /function deliveryMethodLabel\(value: string\)/) assert.match(overseas, /function formatDateTime\(value\?: string \| null\)/) assert.match(overseas, /import DataTable, \{ type DataTableColumn \}/) assert.match(overseas, /index === 0[\s\S]*slotName: 'actions'/) assert.match(overseas, /]*:row-actions="listRowActions"/) })