# contracts/pacts

Eingecheckte Pact-JSON-Dateien (Consumer-Driven Contract Testing, Pact-JVM) - Git ist hier
bewusst der "Broker" statt eines eigenen Pact-Broker-Servers (siehe
[teststrategie.md](../../documentation/docs/03-testing/teststrategie.md), Abschnitt
"Contract Testing").

- Konsumententests (`*ContractTest.java`, laufen unter `mvn test`) schreiben ihre generierte
  Pact-Datei automatisch hierher (`pact.rootDir`-Systemproperty, zentral in der Root-`pom.xml`
  gesetzt).
- Providertests (`*ProviderContractIT.java`, laufen unter `mvn verify`) lesen von hier
  (`@PactFolder("../contracts/pacts")`) und verifizieren die tatsaechliche API/das tatsaechliche
  Event dagegen.
- Aendert sich ein Contract absichtlich, gehoert die aktualisierte Pact-Datei in denselben Commit
  wie die zugehoerige Code-Aenderung - sie ist der lesbare, versionierte Beleg des Vertrags, kein
  reiner Build-Artefakt (deshalb hier eingecheckt statt in `.gitignore`).
