统一寄卖仓库与提报审核规格展示
- 规格标签只显示值,0 璀璨不再显示「无」 - 仓库列表长规格文本改为纯值一行 - 列表物品名展示层清理历史 0 璀璨残留 - 补充规格展示回归测试
This commit is contained in:
@@ -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钻 苏尔南',
|
||||
)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user