Files
order_site/apps/frontend/tests/consignment-spec-options.test.ts
T
zhaoxing 8b7bcca36a feat(consignment): 收敛寄卖迁移并调整发布页价格区布局
- 142–148 收敛为 142_consignment_platform,旧账本自动清理

- 价格三卡保持一行等宽,其余发布页布局回退

- 修复发布 tab 空白并统一价格文案为系统建议价
2026-11-06 14:28:35 +08:00

56 lines
2.8 KiB
TypeScript

import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import test from 'node:test'
/**
* 寄卖规格口径(2026-09 定案):
* - 操作后台全量:系统 苹果/安卓/通用,区服 微信区/QQ区/互通;
* - 打手端发布按物品类型展示:苏尔南 = 系统二选一(苹果/安卓,不给通用),
* 区服固定「互通」且默认选中(互通 = QQ/微信都能收);
* - 「互通」是区服通配值(互通现货匹配微信/QQ 订单,反之亦然),
* 订单文案里的「通用/全区/不限」由后端归一化成通配别名。
*/
test('后台全量选项:系统含通用,区服含互通', () => {
const source = readFileSync(
new URL('../src/utils/consignment-spec.ts', import.meta.url).pathname,
'utf8',
)
assert.ok(source.includes("{ label: '通用', value: '通用' }"), '系统全量选项必须含「通用」')
assert.ok(source.includes("value: '互通'"), '区服选项必须包含「互通」')
})
test('苏尔南默认配置:取消代码内置字段,由合并迁移 142 提供五个单选字段', () => {
const utils = readFileSync(
new URL('../src/utils/consignment-spec.ts', import.meta.url).pathname,
'utf8',
)
assert.ok(!utils.includes('SURNAN_PUBLISH_SYSTEM_OPTIONS'), '前端不再写死苏尔南发布选项')
assert.ok(!utils.includes('DEFAULT_SPEC_FIELDS'), '前端不再内置默认 5 个字段')
assert.ok(utils.includes('SPEC_FIELD_TYPE_OPTIONS'), '字段类型选项必须集中维护')
})
test('打手端发布表单:按寄卖配置动态渲规格,不再回退内置字段', () => {
const source = readFileSync(
new URL('../src/pages/worker/WorkerConsignmentPage.tsx', import.meta.url).pathname,
'utf8',
)
assert.ok(source.includes('selectedSpecs.map'), '规格字段必须来自配置动态渲染')
assert.ok(source.includes('config.specs'), '必须读取寄卖配置的 specs')
assert.ok(!source.includes('DEFAULT_SPEC_FIELDS'), '空配置不能回退内置 5 项')
assert.ok(source.includes('fetchWorkerConsignmentPricePreview'), '价格必须走动态预览接口')
assert.ok(source.includes('buildSpecItemName'), '物品名必须按名称模板生成')
assert.ok(!source.includes('[...CONSIGNMENT_'), '发布端不直接引用后台全量选项')
})
test('客服端两个表单(提报审核 / 库存编辑)用后台全量选项,不再自由填写', () => {
for (const file of ['ConsignmentSubmissionsPanel.tsx', 'ConsignmentInventoryPanel.tsx']) {
const source = readFileSync(
new URL(`../src/pages/admin/panels/${file}`, import.meta.url).pathname,
'utf8',
)
assert.ok(source.includes('CONSIGNMENT_SYSTEM_OPTIONS'), `${file} 应引用全量系统选项`)
assert.ok(source.includes('CONSIGNMENT_ZONE_OPTIONS'), `${file} 应引用全量区服选项`)
}
})