M2b: Android skeleton, :core:model contract, :domain passing all vectors
Gradle project in android/ with every module of SPEC §6.2 (build-logic convention plugins, version catalog, architecture check in check), :core:model types and repository interfaces of §14.2.4 and §14.5, :domain implementing §14.5.2 and §14.5.4 (125 vector cases), scenario-driven fakes with the empty scenario, Room 3 entities and KvittDatabase v1 with exported schema, :app shell with Hilt, en/sv strings with MissingTranslation as a lint error, Roborazzi goldens of the empty screen in light and dark. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// :domain — the pure rules of SPEC §14.5 (split, balances, allocation, settlement check, analytics).
|
||||
plugins {
|
||||
id("kvitt.jvm.library")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api(project(":core:model"))
|
||||
testImplementation(libs.kotlinx.serialization.json)
|
||||
}
|
||||
|
||||
// The shared test vectors (SPEC §14.5.5) are copied from the repository's contracts/ folder into the test resources.
|
||||
// A missing file is not tolerated: VectorFilesTest fails unless exactly the seven files of §14.5.5 are present.
|
||||
val testVectorsRoot = layout.buildDirectory.dir("generated/test-vectors")
|
||||
val copyTestVectors = tasks.register<Sync>("copyTestVectors") {
|
||||
description = "Copies contracts/test-vectors/*.json into the :domain test resources."
|
||||
from(layout.projectDirectory.dir("../../contracts/test-vectors")) { include("*.json") }
|
||||
into(testVectorsRoot.map { it.dir("test-vectors") })
|
||||
}
|
||||
sourceSets.named("test") { resources.srcDir(testVectorsRoot) }
|
||||
tasks.named("processTestResources") { dependsOn(copyTestVectors) }
|
||||
Reference in New Issue
Block a user