aboutsummaryrefslogtreecommitdiff
path: root/pacts
diff options
context:
space:
mode:
authorRuben Beltran del Rio <ruben@unlimited.pizza>2021-05-02 20:16:44 +0200
committerRuben Beltran del Rio <ruben@unlimited.pizza>2021-05-02 20:16:44 +0200
commit5fc4715f923e5a0935cff2030325608ea6ddc0d6 (patch)
tree39284ff13d21a7c53466c24344b37a3649837a28 /pacts
parentb15225c9dff2864ee774a0ab1dcf19d9353ec10b (diff)
Add tags store pact tests
Diffstat (limited to 'pacts')
-rw-r--r--pacts/forumclient-forumserver.json138
1 files changed, 135 insertions, 3 deletions
diff --git a/pacts/forumclient-forumserver.json b/pacts/forumclient-forumserver.json
index b1c7fcb..3933bcc 100644
--- a/pacts/forumclient-forumserver.json
+++ b/pacts/forumclient-forumserver.json
@@ -19,7 +19,7 @@
"operationName": "GetPost",
"query": "query GetPost($id: ID!) {\n post(id: $id) {\n id\n text\n created_at\n author {\n id\n handle\n __typename\n }\n topic {\n id\n title\n __typename\n }\n __typename\n }\n }",
"variables": {
- "id": "freezer"
+ "id": "8f75eba5-6989-4dd3-b466-e464546ce374"
}
},
"matchingRules": {
@@ -98,7 +98,7 @@
"operationName": "GetPost",
"query": "query GetPost($id: ID!) {\n post(id: $id) {\n id\n text\n created_at\n author {\n id\n handle\n __typename\n }\n topic {\n id\n title\n __typename\n }\n __typename\n }\n }",
"variables": {
- "id": "freezer"
+ "id": "8f75eba5-6989-4dd3-b466-e464546ce374"
}
},
"matchingRules": {
@@ -133,7 +133,7 @@
"operationName": "GetPost",
"query": "query GetPost($id: ID!) {\n post(id: $id) {\n id\n text\n created_at\n author {\n id\n handle\n __typename\n }\n topic {\n id\n title\n __typename\n }\n __typename\n }\n }",
"variables": {
- "id": "freezer"
+ "id": "8f75eba5-6989-4dd3-b466-e464546ce374"
}
},
"matchingRules": {
@@ -417,6 +417,138 @@
"headers": {
}
}
+ },
+ {
+ "description": "a request to get a single tag",
+ "providerState": "there's data",
+ "request": {
+ "method": "POST",
+ "path": "/graphql",
+ "headers": {
+ "content-type": "application/json"
+ },
+ "body": {
+ "operationName": "GetTag",
+ "query": "query GetTag($id: ID!) {\n tag(id: $id) {\n id\n topics {\n id\n title\n updated_at\n ttl\n __typename\n }\n __typename\n }\n }",
+ "variables": {
+ "id": "pineapple"
+ }
+ },
+ "matchingRules": {
+ "$.body.query": {
+ "match": "regex",
+ "regex": "query\\s*GetTag\\(\\$id:\\s*ID!\\)\\s*\\{\\s*tag\\(id:\\s*\\$id\\)\\s*\\{\\s*id\\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": {
+ "tag": {
+ "id": "pineapple",
+ "topics": [
+ {
+ "id": "cd038ae7-e8b4-4e38-9543-3d697e69ac34",
+ "title": "This topic is about pineapples",
+ "updated_at": 1619978944077,
+ "ttl": 3555
+ }
+ ]
+ }
+ }
+ },
+ "matchingRules": {
+ "$.body.data.tag.id": {
+ "match": "type"
+ },
+ "$.body.data.tag.topics": {
+ "min": 1
+ },
+ "$.body.data.tag.topics[*].*": {
+ "match": "type"
+ },
+ "$.body.data.tag.topics[*].id": {
+ "match": "type"
+ },
+ "$.body.data.tag.topics[*].title": {
+ "match": "type"
+ },
+ "$.body.data.tag.topics[*].updated_at": {
+ "match": "type"
+ },
+ "$.body.data.tag.topics[*].ttl": {
+ "match": "type"
+ }
+ }
+ }
+ },
+ {
+ "description": "a request to get a single tag",
+ "providerState": "there's no data",
+ "request": {
+ "method": "POST",
+ "path": "/graphql",
+ "headers": {
+ "content-type": "application/json"
+ },
+ "body": {
+ "operationName": "GetTag",
+ "query": "query GetTag($id: ID!) {\n tag(id: $id) {\n id\n topics {\n id\n title\n updated_at\n ttl\n __typename\n }\n __typename\n }\n }",
+ "variables": {
+ "id": "pineapple"
+ }
+ },
+ "matchingRules": {
+ "$.body.query": {
+ "match": "regex",
+ "regex": "query\\s*GetTag\\(\\$id:\\s*ID!\\)\\s*\\{\\s*tag\\(id:\\s*\\$id\\)\\s*\\{\\s*id\\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": {
+ "tag": null
+ }
+ }
+ }
+ },
+ {
+ "description": "a request to get a single tag",
+ "providerState": "there's an error",
+ "request": {
+ "method": "POST",
+ "path": "/graphql",
+ "headers": {
+ "content-type": "application/json"
+ },
+ "body": {
+ "operationName": "GetTag",
+ "query": "query GetTag($id: ID!) {\n tag(id: $id) {\n id\n topics {\n id\n title\n updated_at\n ttl\n __typename\n }\n __typename\n }\n }",
+ "variables": {
+ "id": "pineapple"
+ }
+ },
+ "matchingRules": {
+ "$.body.query": {
+ "match": "regex",
+ "regex": "query\\s*GetTag\\(\\$id:\\s*ID!\\)\\s*\\{\\s*tag\\(id:\\s*\\$id\\)\\s*\\{\\s*id\\s*topics\\s*\\{\\s*id\\s*title\\s*updated_at\\s*ttl\\s*__typename\\s*\\}\\s*__typename\\s*\\}\\s*\\}"
+ }
+ }
+ },
+ "response": {
+ "status": 500,
+ "headers": {
+ }
+ }
}
],
"metadata": {