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.
50 lines
1.8 KiB
Plaintext
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()
|
|
}
|