test: align acceptance and dependency contracts

This commit is contained in:
2026-09-11 01:31:14 +08:00
parent 543ebee5cc
commit abbacc683e
6 changed files with 35 additions and 52 deletions
@@ -37,6 +37,7 @@ const expectedOnlineEdges = [
'lastleg-service->warehouse-overseas-service',
'lastleg-service->warehouse-service',
'order-service->file-service',
'order-service->finance-service',
'order-service->firstleg-service',
'order-service->iam-service',
'order-service->warehouse-service',
@@ -98,11 +99,11 @@ async function discoverFeignEdges() {
return clients.sort((left, right) => left.path.localeCompare(right.path))
}
test('all 56 Feign clients have reviewed context, access and idempotency metadata', async () => {
test('all 57 Feign clients have reviewed context, access and idempotency metadata', async () => {
const reviewed = SYNCHRONOUS_CLIENTS.filter(client => client.transport === 'FEIGN')
.map(({ path, source, target }) => ({ path, source, target }))
.sort((left, right) => left.path.localeCompare(right.path))
assert.equal(reviewed.length, 56)
assert.equal(reviewed.length, 57)
assert.deepEqual(await discoverFeignEdges(), reviewed)
})
@@ -193,7 +194,7 @@ test('REQUEST, BACKGROUND and full graphs remain separate executable baselines',
])
assert.deepEqual(stronglyConnectedComponents(graphEdges('REQUEST')), [
['auth-service', 'iam-service'],
['firstleg-service', 'order-service']
['finance-service', 'firstleg-service', 'order-service']
])
assert.deepEqual(stronglyConnectedComponents(graphEdges('BACKGROUND')), [[
'event-bridge-service', 'finance-service', 'firstleg-service', 'lastleg-service', 'order-service'
@@ -210,7 +211,7 @@ test('overseas security projection stays in Lastleg infrastructure and backgroun
assert.ok(graphEdges('BACKGROUND').includes('event-bridge-service->lastleg-service'))
})
test('Order and Firstleg remain a bilateral REQUEST SCC until loading-complete timing is frozen', () => {
test('Order, Firstleg and Finance form the reviewed REQUEST SCC', () => {
const requestClients = SYNCHRONOUS_CLIENTS.filter(client => client.contexts.includes('REQUEST'))
const orderToFirstleg = requestClients.filter(client =>
client.source === 'order-service' && client.target === 'firstleg-service')
@@ -230,7 +231,8 @@ test('Order and Firstleg remain a bilateral REQUEST SCC until loading-complete t
'firstleg/src/main/java/com/baiyue/firstleg/client/PrintableOrderInboundClient.java'
])
assert.ok(stronglyConnectedComponents(graphEdges('REQUEST')).some(component =>
component.includes('firstleg-service') && component.includes('order-service')))
component.includes('firstleg-service') && component.includes('order-service')
&& component.includes('finance-service')))
})
test('known user entries expose every longest simple REQUEST path over the two-hop budget', () => {
@@ -246,13 +248,13 @@ test('known user entries expose every longest simple REQUEST path over the two-h
'iam-service->auth-service',
'iam-service->warehouse-service'
] },
'order-service': { hops: 4, paths: [
'order-service->firstleg-service->file-service->iam-service->auth-service',
'order-service->firstleg-service->file-service->iam-service->warehouse-service'
'order-service': { hops: 5, paths: [
'order-service->finance-service->firstleg-service->file-service->iam-service->auth-service',
'order-service->finance-service->firstleg-service->file-service->iam-service->warehouse-service'
] },
'firstleg-service': { hops: 4, paths: [
'firstleg-service->order-service->file-service->iam-service->auth-service',
'firstleg-service->order-service->file-service->iam-service->warehouse-service'
'firstleg-service': { hops: 5, paths: [
'firstleg-service->order-service->finance-service->file-service->iam-service->auth-service',
'firstleg-service->order-service->finance-service->file-service->iam-service->warehouse-service'
] },
'finance-service': { hops: 5, paths: [
'finance-service->firstleg-service->order-service->file-service->iam-service->auth-service',