统一寄卖仓库与提报审核规格展示

- 规格标签只显示值,0 璀璨不再显示「无」
- 仓库列表长规格文本改为纯值一行
- 列表物品名展示层清理历史 0 璀璨残留
- 补充规格展示回归测试
This commit is contained in:
2026-11-14 14:23:09 +08:00
parent 0dff00de97
commit a5e877b2ff
5 changed files with 264 additions and 66 deletions
@@ -4,8 +4,11 @@ import test from 'node:test'
import type { ConsignmentSpecField } from '../src/types/consignment.ts'
import {
formatLegacyConsignmentSpec,
resolveConsignmentDisplayItemName,
resolveConsignmentSpecDisplayItems,
resolveConsignmentSpecTagItems,
resolveConsignmentSpecText,
resolveConsignmentSpecValueText,
} from '../src/utils/consignment-spec-display.ts'
function makeSpec(
@@ -110,3 +113,114 @@ test('规格文本:没有模板规格时回退旧列,0 璀璨不展示', ()
assert.equal(formatLegacyConsignmentSpec({ diamondLevel: 1, brillianceCount: 0 }), '1钻')
assert.equal(resolveConsignmentSpecText({}), '-')
})
const diamondSpec = makeSpec({
key: 'diamondLevel',
label: '钻石等级',
type: 'select',
sortOrder: 2,
options: [
{ label: '3钻', value: '3', enabled: true },
{ label: '4钻', value: '4', enabled: true },
],
})
const brillianceSpec = makeSpec({
key: 'brillianceCount',
label: '璀璨数',
type: 'select',
sortOrder: 3,
options: [
{ label: '无', value: '0', enabled: true },
{ label: '1璀璨', value: '1', enabled: true },
{ label: '2璀璨', value: '2', enabled: true },
],
})
test('列表规格标签:只保留值,0 璀璨不占标签位', () => {
const zero = resolveConsignmentSpecTagItems([systemSpec, diamondSpec, brillianceSpec], {
system: 'ios',
diamondLevel: '4',
brillianceCount: '0',
})
assert.deepEqual(
zero.map((item) => item.value),
['苹果', '4钻'],
)
const withBrilliance = resolveConsignmentSpecTagItems([systemSpec, diamondSpec, brillianceSpec], {
system: 'ios',
diamondLevel: '4',
brillianceCount: '2',
})
assert.deepEqual(
withBrilliance.map((item) => item.value),
['苹果', '4钻', '2璀璨'],
)
})
test('列表规格纯值文本:不含字段名,0 璀璨省略', () => {
assert.equal(
resolveConsignmentSpecValueText(
{
specs: [systemSpec, diamondSpec, brillianceSpec],
specValues: { system: 'ios', diamondLevel: '4', brillianceCount: '0' },
},
{ omitZeroBrilliance: true },
),
'苹果 / 4钻',
)
assert.equal(
resolveConsignmentSpecValueText(
{
specs: [systemSpec, diamondSpec, brillianceSpec],
specValues: { system: 'ios', diamondLevel: '4', brillianceCount: '1' },
},
{ omitZeroBrilliance: true },
),
'苹果 / 4钻 / 1璀璨',
)
// 没有动态规格的历史提报/库存回退旧字段,本身就是纯值
assert.equal(
resolveConsignmentSpecValueText({
system: '苹果',
serverZone: '微信区',
series: '暗潮',
diamondLevel: 3,
brillianceCount: 2,
}),
'苹果 / 微信区 / 暗潮 / 3钻 / 2璀璨',
)
})
test('列表物品名:0 璀璨的历史断尾单位只在展示层清掉', () => {
assert.equal(
resolveConsignmentDisplayItemName({
itemName: '安卓暗潮2钻璀璨 苏尔南',
brillianceCount: 0,
}),
'安卓暗潮2钻 苏尔南',
)
assert.equal(
resolveConsignmentDisplayItemName({
itemName: '安卓暗潮2钻0璀璨 苏尔南',
brillianceCount: 0,
}),
'安卓暗潮2钻 苏尔南',
)
assert.equal(
resolveConsignmentDisplayItemName({
itemName: '苹果血宴1钻1璀璨 苏尔南',
brillianceCount: 1,
}),
'苹果血宴1钻1璀璨 苏尔南',
)
// 系列名本身含「璀璨」时不能误删
assert.equal(
resolveConsignmentDisplayItemName({
itemName: '璀璨系列2钻 苏尔南',
brillianceCount: 0,
}),
'璀璨系列2钻 苏尔南',
)
})