优化
This commit is contained in:
@@ -10,6 +10,7 @@ const overseasHttp = readFileSync(new URL('../../api/overseasHttp.ts', import.me
|
||||
|
||||
test('activates the customer-scoped overseas inbound list and detail', () => {
|
||||
assert.match(routes, /path: 'orders\/inbound'[\s\S]*?release: 'active'[\s\S]*?permission: 'merchant:warehouse:inbound:list'/)
|
||||
assert.match(routes, /path: 'orders\/inbound\/:planNo\/detail'[\s\S]*?name: 'orders-inbound-detail'/)
|
||||
assert.match(api, /\/merchant\/v1\/last-leg\/inbound-plans/)
|
||||
assert.match(api, /encodeURIComponent\(planNo\)/)
|
||||
assert.doesNotMatch(api, /\/platform\/|\/internal\/|customerId|tenantId/)
|
||||
@@ -17,12 +18,12 @@ test('activates the customer-scoped overseas inbound list and detail', () => {
|
||||
})
|
||||
|
||||
test('keeps actions first and exposes filters loading errors empty state pagination and business identifiers', () => {
|
||||
assert.match(view, /<el-table-column label="操作"[^>]*fixed="left"/)
|
||||
assert.match(view, /label: '操作', slotName: 'actions'[^\n]*fixed: 'left'/)
|
||||
for (const token of ['planNo', 'inboundCode', 'destinationWarehouseCode', 'appointmentStatus', 'dispatchStatus', 'createdDates']) assert.match(view, new RegExp(token))
|
||||
assert.match(view, /v-loading="loading"/)
|
||||
assert.match(view, /type="error"/)
|
||||
assert.match(view, /empty-text="暂无入库订单"/)
|
||||
assert.match(view, /<el-pagination/)
|
||||
assert.match(view, /<DataTable[^>]*v-model:page="query\.page"/)
|
||||
assert.match(view, /detail\.planNo/)
|
||||
assert.doesNotMatch(view, /planId|orderId|warehouseId|customerId/)
|
||||
})
|
||||
@@ -31,8 +32,8 @@ test('shows only the server-provided overseas receiving warehouse code and name'
|
||||
assert.equal((api.match(/overseasWarehouseCode\?: string \| null/g) || []).length, 2)
|
||||
assert.equal((api.match(/overseasWarehouseName\?: string \| null/g) || []).length, 2)
|
||||
assert.doesNotMatch(api, /overseasWarehouseId/)
|
||||
assert.match(view, /label="海外接柜仓"/)
|
||||
assert.match(view, /overseasWarehouseLabel\(scope\.row\.overseasWarehouseCode, scope\.row\.overseasWarehouseName\)/)
|
||||
assert.match(view, /label: '海外接柜仓'/)
|
||||
assert.match(view, /overseasWarehouseLabel\(row\.overseasWarehouseCode, row\.overseasWarehouseName\)/)
|
||||
assert.match(view, /overseasWarehouseLabel\(detail\.overseasWarehouseCode, detail\.overseasWarehouseName\)/)
|
||||
assert.doesNotMatch(view, /warehouseName \|\| warehouseCode|destinationWarehouse(?:Id|Code|Name).*overseasWarehouse/i)
|
||||
})
|
||||
@@ -59,17 +60,29 @@ test('renders inbound workflow statuses in Chinese and keeps desktop values on o
|
||||
['SIGNED', '已签收'], ['PICKING', '拣货中'], ['PARTIAL_INBOUND', '部分入库'],
|
||||
]) assert.match(view, new RegExp(`${status}: '${label}'`))
|
||||
assert.match(view, /COMPLETED: '全部入库'/)
|
||||
assert.match(view, /label="状态" width="120" show-overflow-tooltip/)
|
||||
assert.match(view, /\.detail-grid div \{ min-width: 0;/)
|
||||
assert.match(view, /label: '状态', slotName: 'status', width: 120/)
|
||||
assert.match(view, /\.detail-grid div \{ display: grid; min-width: 0; min-height: 42px;/)
|
||||
assert.match(view, /\.detail-grid dd \{[^}]*overflow: hidden;[^}]*text-overflow: ellipsis;[^}]*white-space: nowrap;/)
|
||||
})
|
||||
|
||||
test('uses the shared compact detail surface instead of stacked cards', () => {
|
||||
assert.match(view, /<article class="inbound-detail-surface">/)
|
||||
assert.match(view, /name: 'orders-inbound-detail', params: \{ planNo: row\.planNo \}/)
|
||||
assert.match(view, /<el-button link type="primary" @click="returnToList"><ArrowLeft[^>]*\/>返回列表<\/el-button>/)
|
||||
assert.match(view, /class="client-status" :data-tone="statusTone\(detail\.status\)"/)
|
||||
assert.match(view, /<DataTable :data="detail\.lines" :columns="detailLineColumns"/)
|
||||
assert.match(view, /<DataTable :data="detail\.pallets" :columns="detailPalletColumns"/)
|
||||
assert.doesNotMatch(view, /<el-card shadow="never"/)
|
||||
assert.match(view, /\.inbound-detail-header \{[^}]*min-height: 64px;[^}]*padding: 8px 16px;/)
|
||||
assert.match(view, /\.detail-grid \{[^}]*grid-template-columns: repeat\(4, minmax\(0, 1fr\)\)/)
|
||||
assert.match(view, /detailError \|\| '入库订单详情加载失败'/)
|
||||
})
|
||||
|
||||
test('uses the formal inbound status selector and presents destination fields without mixing receiving warehouses', () => {
|
||||
assert.match(view, /const inboundStatusOptions = \[/)
|
||||
assert.match(view, /label="作业状态"><el-select v-model="query\.status"/)
|
||||
assert.doesNotMatch(view, /label="作业状态"><el-input/)
|
||||
assert.match(view, /destinationWarehouseLabel\(scope\.row\.fbaWarehouseCode, scope\.row\.destinationWarehouseCode, scope\.row\.destinationWarehouseName\)/)
|
||||
assert.match(view, /destinationWarehouseLabel\(scope\.row\.destinationWarehouseCode, scope\.row\.destinationWarehouseName\)/)
|
||||
assert.match(view, /key: 'status', label: '作业状态', type: 'select', options: inboundStatusOptions/)
|
||||
assert.match(view, /destinationWarehouseLabel\(row\.fbaWarehouseCode, row\.destinationWarehouseCode, row\.destinationWarehouseName\)/)
|
||||
assert.match(view, /destinationWarehouseLabel\(row\.destinationWarehouseCode, row\.destinationWarehouseName\)/)
|
||||
assert.doesNotMatch(view, /label="目的仓代码"|label="目的仓名称"/)
|
||||
assert.doesNotMatch(view, /destinationWarehouseLabel\([^)]*overseasWarehouse/)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user