]> git.r.bdr.sh - rbdr/forum/blobdiff - pacts/forumsstore-forumapiserver.json
Add getForum pact, normalize stores
[rbdr/forum] / pacts / forumsstore-forumapiserver.json
index 26a2810b2b271d921d3f29c5ecdde63d6831f808..c3d2c0d66a6ed63f321d2e0e1b9e1f07c5356c80 100644 (file)
           }
         }
       }
+    },
+    {
+      "description": "a request to get a single forum",
+      "request": {
+        "method": "POST",
+        "path": "/graphql",
+        "headers": {
+          "content-type": "application/json"
+        },
+        "body": {
+          "operationName": "GetForum",
+          "query": "query GetForum($id: ID!) {\n            forum(id: $id) {\n              id\n              glyph\n              label\n              position\n              topics {\n                id\n                title\n                updated_at\n                ttl\n                __typename\n              }\n              __typename\n            }\n          }",
+          "variables": {
+            "id": "freezer"
+          }
+        },
+        "matchingRules": {
+          "$.body.query": {
+            "match": "regex",
+            "regex": "query\\s*GetForum\\(\\$id:\\s*ID!\\)\\s*\\{\\s*forum\\(id:\\s*\\$id\\)\\s*\\{\\s*id\\s*glyph\\s*label\\s*position\\s*topics\\s*\\{\\s*id\\s*title\\s*updated_at\\s*ttl\\s*__typename\\s*\\}\\s*__typename\\s*\\}\\s*\\}"
+          }
+        }
+      },
+      "response": {
+        "status": 200,
+        "headers": {
+          "Content-Type": "application/json; charset=utf-8"
+        },
+        "body": {
+          "data": {
+            "forum": {
+              "id": "freezer",
+              "glyph": "✭",
+              "label": "test_forums.freezer",
+              "position": 3,
+              "topics": [
+                {
+                  "id": "629de02c-151a-4db7-bb86-43b2add8a15a",
+                  "title": "Very pacty topic",
+                  "updated_at": 1619954611616,
+                  "ttl": 3601
+                }
+              ]
+            }
+          }
+        },
+        "matchingRules": {
+          "$.body.data.forum": {
+            "match": "type"
+          },
+          "$.body.data.forum.glyph": {
+            "match": "type"
+          },
+          "$.body.data.forum.label": {
+            "match": "type"
+          },
+          "$.body.data.forum.position": {
+            "match": "type"
+          },
+          "$.body.data.forum.topics": {
+            "min": 1
+          },
+          "$.body.data.forum.topics[*].*": {
+            "match": "type"
+          },
+          "$.body.data.forum.topics[*].id": {
+            "match": "type"
+          },
+          "$.body.data.forum.topics[*].title": {
+            "match": "type"
+          },
+          "$.body.data.forum.topics[*].updated_at": {
+            "match": "type"
+          },
+          "$.body.data.forum.topics[*].ttl": {
+            "match": "type"
+          }
+        }
+      }
     }
   ],
   "metadata": {