test: extend eight-business acceptance flows and offline contracts

This commit is contained in:
2026-10-22 15:41:50 +08:00
parent 86889d7e0e
commit 080ca600e6
33 changed files with 1285 additions and 101 deletions
+21 -2
View File
@@ -2,7 +2,7 @@ import assert from 'node:assert/strict'
import test from 'node:test'
import { summarizeReport, describeHomepageBusinessCoverage } from './acceptance-overview.mjs'
import { readFileSync } from 'node:fs'
import { describeAcceptanceScope } from './admin-test-env-acceptance.mjs'
import { describeAcceptanceScope, normalizeModuleOrder } from './admin-test-env-acceptance.mjs'
test('业务覆盖清单逐项对应客户端首页八个入口,未闭环不可标记通过', () => {
const homepage = readFileSync(new URL('../../apps/client-web/src/modules/dashboard/views/DashboardView.vue', import.meta.url), 'utf8')
@@ -15,12 +15,31 @@ test('业务覆盖清单逐项对应客户端首页八个入口,未闭环不
const registered = new Set([...scope.defaultModules, ...scope.optionalModules])
for (const business of businesses) {
assert.ok(business.modules.every(name => registered.has(name)))
assert.deepEqual(business.defaultModules, business.modules, `${business.title}正常链必须默认执行`)
assert.ok(business.modules.every(name => !scope.fixedResourceSkippedModules.includes(name)), `${business.title}不能因固定客户跳过`)
assert.ok(business.additionalModules.every(({ name }) => registered.has(name)))
assert.ok(business.remaining)
assert.equal(business.currentVersionVerified, false)
assert.equal(business.endToEndCoverage, 'INCOMPLETE')
}
assert.equal(businesses.find(item => item.title === '海外采购').additionalModules[0].skippedWithFixedResources, false)
assert.ok(businesses.find(item => item.title === '海外采购').modules.includes('phase4-overseas-wallet-and-pallet-cost'))
assert.ok(businesses.find(item => item.title === '退货换标').modules.includes('phase4-overseas-return-followups'))
})
test('八大业务定向执行保留正常履约的直接前置顺序', () => {
const dependencies = [
['phase4-overseas-return-receipt', 'phase4-overseas-return-followups'],
['phase4-overseas-business', 'phase4-overseas-wallet-and-pallet-cost'],
['phase4-overseas-client-services', 'phase4-overseas-dispatch'],
['phase4-overseas-business', 'phase5-overseas-fulfillment'],
['phase4-overseas-dispatch', 'phase5-overseas-fulfillment'],
]
for (const [producer, consumer] of dependencies) {
const planned = normalizeModuleOrder([consumer])
assert.ok(planned.includes(producer), `${consumer}缺少${producer}`)
assert.ok(planned.indexOf(producer) < planned.indexOf(consumer))
assert.equal(planned.filter(name => name === producer).length, 1)
}
})
test('注册表返回独立副本,默认与可选不重复', () => {