Skip to content

Commit 73eee1e

Browse files
Merge pull request #183 from rohankarthik/assert-queries-it-202310
test: added query assertions for integration tests - (Issue#180)
2 parents 92d5c0a + 1ad7c4e commit 73eee1e

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

src/test/groovy/com/intuit/graphql/orchestrator/integration/DownstreamVariableProxyingSpec.groovy

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
6565
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
6666
operationDefinition.getVariableDefinitions().size() == 0
6767
serviceAExecutionInput.getVariables().size() == 0
68+
69+
compareQueryToExecutionInput(null, "query TestQuery {fieldA(objectArgA:null)}", testServiceA)
6870
}
6971

7072
def "No Variable Definitions but with Variable Data, variable data not proxied"() {
@@ -96,6 +98,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
9698
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
9799
operationDefinition.getVariableDefinitions().size() == 0
98100
serviceAExecutionInput.getVariables().size() == 0
101+
102+
compareQueryToExecutionInput(null, "query TestQuery {fieldA(objectArgA:null)}", testServiceA)
99103
}
100104

101105
def "With variable definitions and variable data, variables are proxied"() {
@@ -127,6 +131,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
127131
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
128132
operationDefinition.getVariableDefinitions().get(0).getName() == "varDef"
129133
serviceAExecutionInput.getVariables()["varDef"] == [ s : "String Input" ]
134+
135+
compareQueryToExecutionInput(null, "query TestQuery(\$varDef:InputA) {fieldA(objectArgA:\$varDef)}", testServiceA)
130136
}
131137

132138
def "With variable definitions but no variable Data, variables definitions are proxied"() {
@@ -156,6 +162,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
156162
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
157163
operationDefinition.getVariableDefinitions().get(0).getName() == "varDef"
158164
serviceAExecutionInput.getVariables().size() == 0
165+
166+
compareQueryToExecutionInput(null, "query TestQuery(\$varDef:InputA) {fieldA(objectArgA:\$varDef)}", testServiceA)
159167
}
160168

161169
}

src/test/groovy/com/intuit/graphql/orchestrator/integration/QueryDirectiveSpec.groovy

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,8 @@ class QueryDirectiveSpec extends BaseIntegrationTestSpecification {
239239
pet_type_field.getDirectives().get(0).getName() == "include"
240240
pet_type_field.getDirectives().get(0).getArgument("if") != null
241241

242+
compareQueryToExecutionInput(null, """query BooksPetsAndUsers(\$includeType:Boolean!) {pets {id name type @include(if:\$includeType)}}""", petsService)
243+
242244
// userService
243245
ExecutionInput userServiceExecutionInput = getCapturedDownstreamExecutionInput(userService)
244246
Map<String, Object> userServiceVariables = userServiceExecutionInput.getVariables()
@@ -254,6 +256,8 @@ class QueryDirectiveSpec extends BaseIntegrationTestSpecification {
254256
users_lastName_field.getDirectives().size() == 1
255257
users_lastName_field.getDirectives().get(0).getName() == "include"
256258
users_lastName_field.getDirectives().get(0).getArgument("if") != null
259+
260+
compareQueryToExecutionInput(null, "query BooksPetsAndUsers(\$includeType:Boolean!) {users {id firstName lastName @include(if:\$includeType)}}", userService)
257261
}
258262

259263
}

src/test/groovy/com/intuit/graphql/orchestrator/integration/QueryInterfaceSpec.groovy

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
134134
query.contains("charIdName")
135135
query.contains("appearsIn")
136136
query.contains("Character")
137+
compareQueryToExecutionInput(null, "fragment charIdName on Character {id name} query QUERY {hero {__typename ...charIdName appearsIn ... on Droid {primaryFunction}}}", starWarsService)
137138

138139
Document document = parser.parseDocument(serviceExecutionInput.getQuery())
139140
document.getDefinitions().size() == 2
@@ -193,6 +194,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
193194
query.contains("name")
194195
query.contains("appearsIn")
195196
query.contains("homePlanet")
197+
compareQueryToExecutionInput(null, "query QUERY {human {name appearsIn homePlanet}}", starWarsService)
196198

197199
Document document = parser.parseDocument(serviceExecutionInput.getQuery())
198200
document.getDefinitions().size() == 1
@@ -258,6 +260,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
258260
query.contains("characters")
259261
query.contains("name")
260262
query.contains("appearsIn")
263+
compareQueryToExecutionInput(null, "query QUERY {characters {name appearsIn __typename}}", starWarsService)
261264

262265
Document document = parser.parseDocument(serviceExecutionInput.getQuery())
263266
document.getDefinitions().size() == 1
@@ -317,6 +320,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
317320
query.contains("QueryHuman")
318321
query.contains("human")
319322
query.contains("name")
323+
compareQueryToExecutionInput(null, "query QueryHuman(\$humanId:String) {human(id:\$humanId) {name homePlanet}}", starWarsService)
320324
}
321325

322326
}

src/test/groovy/com/intuit/graphql/orchestrator/integration/QueryNestedSchemaSpec.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ class QueryNestedSchemaSpec extends BaseIntegrationTestSpecification {
195195
personQuery.contains("person")
196196
personQuery.contains("id")
197197
personQuery.contains("name")
198+
compareQueryToExecutionInput(null, "query QUERY {person {name id}}", personService)
198199

199200
// bookService
200201
ExecutionInput bookServiceExecutionInput = getCapturedDownstreamExecutionInput(bookService)
@@ -206,6 +207,7 @@ class QueryNestedSchemaSpec extends BaseIntegrationTestSpecification {
206207
bookQuery.contains("book")
207208
bookQuery.contains("id")
208209
bookQuery.contains("name")
210+
compareQueryToExecutionInput(null, "query QUERY {person {book {id name}}}", bookService)
209211

210212
// petsService
211213
ExecutionInput petsServiceExecutionInput = getCapturedDownstreamExecutionInput(petsService)
@@ -216,6 +218,7 @@ class QueryNestedSchemaSpec extends BaseIntegrationTestSpecification {
216218
petsQuery.contains("person")
217219
petsQuery.contains("pets")
218220
petsQuery.contains("name")
221+
compareQueryToExecutionInput(null, "query QUERY {person {pets {name}}}", petsService)
219222
}
220223

221224
}

0 commit comments

Comments
 (0)