meldestelle/platform/architecture-tests/build.gradle.kts
Stefan Mogeritsch 5feb42d973 feat: add architecture tests for enforcing module boundaries
Integrated a new `:platform:architecture-tests` module using ArchUnit to enforce backend and frontend architecture rules. Configured explicit dependencies to all relevant modules and implemented rules to prevent cross-dependencies between backend services and frontend features. Replaced legacy Gradle-based architecture guards with this robust solution. Updated CI pipeline to include these tests.
2026-01-29 14:28:36 +01:00

50 lines
1.8 KiB
Plaintext

plugins {
alias(libs.plugins.kotlinJvm)
}
// This module tests the architecture of the entire project.
// It needs explicit dependencies on all modules that contain code to be checked.
dependencies {
// ArchUnit
implementation(libs.archunit.junit5.api)
runtimeOnly(libs.archunit.junit5.engine)
// Standard Kotlin Test-Bibliothek
implementation(libs.kotlin.test)
implementation(libs.kotlin.test.junit5)
// --- ADD ALL MODULES WITH CODE TO BE TESTED HERE ---
// This list must be maintained manually.
// --- CONTRACTS ---
implementation(project(":contracts:ping-api"))
// --- CORE ---
implementation(project(":core:core-domain"))
implementation(project(":core:core-utils"))
// --- BACKEND ---
implementation(project(":backend:services:ping:ping-service"))
implementation(project(":backend:services:entries:entries-api"))
implementation(project(":backend:services:entries:entries-service"))
implementation(project(":backend:services:registry:registry-api"))
implementation(project(":backend:services:registry:registry-domain"))
implementation(project(":backend:services:registry:registry-service"))
// --- FRONTEND ---
implementation(project(":frontend:features:ping-feature"))
implementation(project(":frontend:core:auth"))
implementation(project(":frontend:core:domain"))
implementation(project(":frontend:core:design-system"))
implementation(project(":frontend:core:navigation"))
implementation(project(":frontend:core:network"))
implementation(project(":frontend:core:local-db"))
implementation(project(":frontend:core:sync"))
implementation(project(":frontend:shared"))
implementation(project(":frontend:shells:meldestelle-portal"))
}
tasks.withType<Test>().configureEach {
useJUnitPlatform()
}