优化
This commit is contained in:
@@ -12,6 +12,7 @@ const sourceRoots = {
|
||||
const internalPrefix = 'com.baiyue.lastleg.';
|
||||
|
||||
const sliceRules = [
|
||||
['security-projection', /(?:^|\.)security\.(?:controller|dto|service)(?:\.|$)/],
|
||||
['dispatch-delivery', /(?:^|\.)(?:dispatch|delivery|outbound)(?:\.|$)/],
|
||||
['relabel-transfer-discard', /(?:^|\.)(?:relabel|transfer|discard)(?:\.|$)/],
|
||||
['inbound-pda', /(?:^|\.)(?:inboundplan|palletops|pda)(?:\.|$)/],
|
||||
|
||||
@@ -74,3 +74,25 @@ test('vehicle application only depends inward and stays free of adapter framewor
|
||||
&& edge.target.startsWith('com.baiyue.lastleg.') && !edge.target.startsWith(prefix));
|
||||
assert.deepEqual(outwardDependencies, []);
|
||||
});
|
||||
|
||||
test('security projection stays isolated from Lastleg business slices', () => {
|
||||
const report = analyze();
|
||||
const projectionClasses = report.classes.filter(entry => entry.slice === 'security-projection');
|
||||
const projectionNames = new Set(projectionClasses.map(entry => entry.fqcn));
|
||||
assert.deepEqual(projectionClasses.map(entry => entry.fqcn).sort(), [
|
||||
'com.baiyue.lastleg.security.controller.LastlegSecurityController',
|
||||
'com.baiyue.lastleg.security.dto.LastlegSecurityDtos',
|
||||
'com.baiyue.lastleg.security.service.LastlegSecurityProjectionRedisMirror',
|
||||
'com.baiyue.lastleg.security.service.LastlegSecurityProjectionService',
|
||||
'com.baiyue.lastleg.security.service.LastlegSecurityValidationService',
|
||||
'com.baiyue.lastleg.security.service.SecurityProjectionMonotonicity',
|
||||
]);
|
||||
assert.deepEqual(report.sliceEdges.filter(edge => edge.source === 'security-projection'), [
|
||||
{ source: 'security-projection', target: 'shared-technical', count: 1 },
|
||||
]);
|
||||
assert.deepEqual(report.sliceEdges.filter(edge => edge.target === 'security-projection'), []);
|
||||
assert.equal(report.sliceSccs.some(component => component.includes('security-projection')), false);
|
||||
const businessConsumers = report.classDependencies.filter(edge => projectionNames.has(edge.target)
|
||||
&& !projectionNames.has(edge.source));
|
||||
assert.deepEqual(businessConsumers, []);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user