test: confirm plans before PDA acceptance
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import { stableLinkSnapshot } from './phase3-loading-model-bridge.mjs'
|
||||
|
||||
const source = readFileSync(fileURLToPath(new URL('./phase3-loading-model-bridge.mjs', import.meta.url)), 'utf8')
|
||||
|
||||
test('bridge acceptance treats an existing pair as a read-only idempotent replay', () => {
|
||||
assert.match(source, /已由推送建立的同一桥接 pair 重放返回原关联/)
|
||||
assert.match(source, /桥接 pair 重放不改关联身份、状态或双侧版本/)
|
||||
assert.doesNotMatch(source, /桥接同幂等键不同版本请求拒绝且不产生部分更新/)
|
||||
})
|
||||
|
||||
test('bridge replay comparison freezes stable identity status and both versions', () => {
|
||||
const link = {
|
||||
id: '1', tenantId: '10', inboundId: '20', preloadPlanId: '30', preloadStatus: 'PENDING',
|
||||
preloadVersion: 3, loadingPlanId: '40', containerBookingId: '50', containerNo: null,
|
||||
loadingPlanStatus: 'EDITING', loadingPlanVersion: 4, allocatedPackageCount: 8,
|
||||
linkedAt: '2026-08-15T09:00:00', ignoredTransportField: 'not-part-of-the-link-contract',
|
||||
}
|
||||
assert.deepEqual(stableLinkSnapshot({ ...link, ignoredTransportField: 'changed' }), stableLinkSnapshot(link))
|
||||
assert.notDeepEqual(stableLinkSnapshot({ ...link, loadingPlanVersion: 5 }), stableLinkSnapshot(link))
|
||||
assert.notDeepEqual(stableLinkSnapshot({ ...link, preloadVersion: 4 }), stableLinkSnapshot(link))
|
||||
assert.notDeepEqual(stableLinkSnapshot({ ...link, allocatedPackageCount: 7 }), stableLinkSnapshot(link))
|
||||
})
|
||||
Reference in New Issue
Block a user