Some private notes, concerning the revealed insights of the experiment
authorKai Moritz <kai@juplo.de>
Sun, 22 May 2022 16:07:10 +0000 (18:07 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 3 Jun 2022 11:56:27 +0000 (13:56 +0200)
README.md

index b6eb530..afe9eae 100644 (file)
--- a/README.md
+++ b/README.md
@@ -261,3 +261,25 @@ See https://docs.gradle.org/6.6.1/userguide/command_line_interface.html#sec:comm
 BUILD FAILED in 4s
 8 actionable tasks: 6 executed, 2 up-to-date
 ```
+
+# Notizen
+
+* Die Anordnung der Kontrakte ist je nach Implementierung unterschiedlich.
+* __Dies ist kein Fehler!__
+  * Der JavaScript-Consumer erweckt den Anschein, dass die Reihenfolge
+    der Aufrufe im Kontrakt erhalten bleibt, so dass beim Testen des
+    Providers gegen den Kontrakt automatisch der benötigte Zustand
+    existiert.
+  * Dies ist aber _nicht_ so und soll so auch nicht sein.
+  * Der Provider ist in diesem Beispiel einfach so implementiert, dass er
+     gar keinen Zustand hält und nur das erwartete JSON für ausgedacht Werte
+     erzeugt.
+  * Ein Test mehrerer aufeinander folgenden Aufrufe, die sich selbst den
+     benötigten Zustand erzeugen (z.B. Erzeugen / Auflisten / Löschen) ist
+     nicht möglich und aus der Sicht von Pact auch nicht sinnvoll!
+  * Der Kotrakt soll nur sicherstellen, dass sich Consumer und Provider
+    verstehen.
+* Für den Vergleich, den Pact normalisieren mit:
+  ```
+  cat PATH_TO_PACT | jq '.interactions|=sort_by(.description)' > NORMALIZED
+  ```