test: detect shared overflow evidence

This commit is contained in:
2026-09-04 15:29:06 +08:00
parent c55f2aed11
commit c8c402ffc5
2 changed files with 14 additions and 2 deletions
@@ -66,6 +66,17 @@ test('scenario inspection requires deletion release, refill reuse, WAIT_SPLIT, a
assert.equal(inspectScenarioReport(scenario, report, 0).passed, false)
})
test('scenario inspection detects naturally observed shared A0 from evidence without coupling to step wording', () => {
const scenario = PALLET_LOCATION_SCENARIOS[0]
const report = {
success: false,
createdResources: {},
steps: [{ name: '正式数据 A0 共享溢出观测', passed: true,
evidence: 'sharedOverflow=true, slots=1:reservation:A0' }],
}
assert.equal(inspectScenarioReport(scenario, report, 1).resources.sharedOverflowObserved, true)
})
test('cross-scenario inspection permits shared A0 location but rejects shared reservation or block', () => {
const results = [
{ resources: { inboundId: '1', blockId: '11', reservationId: '21', locationId: 'A0' } },
@@ -109,7 +109,8 @@ export function inspectScenarioReport(scenario, report, exitCode = 0) {
expectedGuideShape: guideEvidenceMatched,
}
const passed = Object.values(assertions).every(Boolean)
const overflowStep = steps.find((step) => String(step.name || '').includes('A0共享溢出位状态可见'))
const sharedOverflowObserved = steps.some((step) =>
/sharedOverflow=true/.test(String(step.evidence || '')))
return {
name: scenario.name,
description: scenario.description,
@@ -126,7 +127,7 @@ export function inspectScenarioReport(scenario, report, exitCode = 0) {
locationId: guide.locationId || null,
palletCount: measurement.palletCount ?? null,
processStatus: measurement.processStatus || null,
sharedOverflowObserved: /sharedOverflow=true/.test(String(overflowStep?.evidence || '')),
sharedOverflowObserved,
},
}
}