diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-05-02 20:16:44 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-05-02 20:16:44 +0200 |
| commit | 5fc4715f923e5a0935cff2030325608ea6ddc0d6 (patch) | |
| tree | 39284ff13d21a7c53466c24344b37a3649837a28 /pacts | |
| parent | b15225c9dff2864ee774a0ab1dcf19d9353ec10b (diff) | |
Add tags store pact tests
Diffstat (limited to 'pacts')
| -rw-r--r-- | pacts/forumclient-forumserver.json | 138 |
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": { |