64 lines
2.6 KiB
TypeScript
64 lines
2.6 KiB
TypeScript
import assert from 'node:assert/strict'
|
||
import { readFile } from 'node:fs/promises'
|
||
import test from 'node:test'
|
||
|
||
test('人工成本配置直接展示标准商品,不再要求按日期扫描内部 SKU', async () => {
|
||
const source = await readFile(
|
||
new URL('../src/pages/admin/cost-center/ManualSkuConfigPanel.tsx', import.meta.url),
|
||
'utf8',
|
||
)
|
||
|
||
assert.ok(source.includes('人工标准商品由人工配置自动创建'))
|
||
assert.ok(source.includes("title: '人工标准商品'"))
|
||
assert.ok(source.includes('SKU:{row.skuKey}'))
|
||
assert.ok(!source.includes('扫描内部 SKU'))
|
||
assert.ok(!source.includes('DatePicker.RangePicker'))
|
||
assert.ok(!source.includes('rematchAdminManualFulfillments'))
|
||
})
|
||
|
||
test('新增人工 SKU 直接保存配置,由后端自动创建标准商品', async () => {
|
||
const source = await readFile(
|
||
new URL('../src/pages/admin/cost-center/ManualSkuConfigPanel.tsx', import.meta.url),
|
||
'utf8',
|
||
)
|
||
|
||
assert.ok(source.includes('新增人工 SKU'))
|
||
assert.ok(source.includes('openCreateConfig'))
|
||
assert.ok(source.includes('name="skuKey"'))
|
||
assert.ok(source.includes('保存时自动创建标准商品'))
|
||
assert.ok(source.includes('manualSku'))
|
||
assert.ok(source.includes("returnTo.startsWith('/admin/fulfillment-channel')"))
|
||
})
|
||
|
||
test('人工商品不再允许手工创建或执行旧批量归档', async () => {
|
||
const [productSource, serviceSource, queueSource, shellSource] = await Promise.all([
|
||
readFile(
|
||
new URL('../src/pages/admin/cost-center/ProductCatalogPanel.tsx', import.meta.url),
|
||
'utf8',
|
||
),
|
||
readFile(
|
||
new URL('../../backend/src/services/cost-center/product-catalog-service.ts', import.meta.url),
|
||
'utf8',
|
||
),
|
||
readFile(
|
||
new URL('../src/pages/admin/AdminFulfillmentChannelPage.tsx', import.meta.url),
|
||
'utf8',
|
||
),
|
||
readFile(
|
||
new URL('../src/pages/admin/cost-center/CostCenterShell.tsx', import.meta.url),
|
||
'utf8',
|
||
),
|
||
])
|
||
|
||
assert.ok(!productSource.includes('归档跨渠道重复商品'))
|
||
assert.ok(!productSource.includes('归档纯历史人工商品'))
|
||
assert.ok(productSource.includes("channelFilter === 'manual'"))
|
||
assert.ok(productSource.includes('manualNew=1'))
|
||
assert.ok(productSource.includes('人工标准商品由人工 SKU 配置自动创建'))
|
||
assert.ok(serviceSource.includes('cost_manual_product_managed_by_config'))
|
||
assert.ok(queueSource.includes('manualSku=${encodeURIComponent(sku)}'))
|
||
assert.ok(queueSource.includes("returnTo=${encodeURIComponent('/admin/fulfillment-channel')}"))
|
||
assert.ok(shellSource.includes("searchParams.get('scope')"))
|
||
assert.ok(shellSource.includes("searchParams.get('tab')"))
|
||
})
|