diff --git a/backend/src/test/java/org/raddatz/familienarchiv/shared/ArchitectureTest.java b/backend/src/test/java/org/raddatz/familienarchiv/shared/ArchitectureTest.java index 9ec21149..809da1fc 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/shared/ArchitectureTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/shared/ArchitectureTest.java @@ -86,6 +86,20 @@ class ArchitectureTest { .and().resideInAPackage("..ocr..") .should().dependOnClassesThat(foreignJpaRepositoryFor("ocr")); + @ArchTest + static final ArchRule services_only_access_own_domain_repositories_importing = + noClasses() + .that().areAnnotatedWith(Service.class) + .and().resideInAPackage("..importing..") + .should().dependOnClassesThat(foreignJpaRepositoryFor("importing")); + + @ArchTest + static final ArchRule services_only_access_own_domain_repositories_audit = + noClasses() + .that().areAnnotatedWith(Service.class) + .and().resideInAPackage("..audit..") + .should().dependOnClassesThat(foreignJpaRepositoryFor("audit")); + // Rule 3: Infrastructure @Configuration classes must not end up scattered in domain packages. // Keeps cross-cutting setup (security, async, DB, storage) in dedicated packages // where it can be audited and reasoned about independently.