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 61804b01..9ec21149 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/shared/ArchitectureTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/shared/ArchitectureTest.java @@ -118,11 +118,15 @@ class ArchitectureTest { // Tracked in: http://heim-nas:3005/marcel/familienarchiv/issues/427 private static DescribedPredicate foreignJpaRepositoryFor(String ownDomain) { + // Exact-segment match: prevents a domain name that is a substring of another + // (e.g. "tag" inside "tagging") from silently escaping the predicate. + // The pattern matches the domain as a complete path segment, with an optional sub-package. + String ownPackagePattern = ".*\\.familienarchiv\\." + ownDomain + "(\\..+)?$"; return new DescribedPredicate("be a JPA repository from a domain other than " + ownDomain) { @Override public boolean test(JavaClass clazz) { return clazz.isAssignableTo(JpaRepository.class) - && !clazz.getPackageName().contains("." + ownDomain); + && !clazz.getPackageName().matches(ownPackagePattern); } }; }