Skip to content

Commit

Permalink
Merge pull request #183 from rohankarthik/assert-queries-it-202310
Browse files Browse the repository at this point in the history
test: added query assertions for integration tests - (Issue#180)
  • Loading branch information
ashpak-shaikh committed Oct 27, 2023
2 parents 92d5c0a + 1ad7c4e commit 73eee1e
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
operationDefinition.getVariableDefinitions().size() == 0
serviceAExecutionInput.getVariables().size() == 0

compareQueryToExecutionInput(null, "query TestQuery {fieldA(objectArgA:null)}", testServiceA)
}

def "No Variable Definitions but with Variable Data, variable data not proxied"() {
Expand Down Expand Up @@ -96,6 +98,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
operationDefinition.getVariableDefinitions().size() == 0
serviceAExecutionInput.getVariables().size() == 0

compareQueryToExecutionInput(null, "query TestQuery {fieldA(objectArgA:null)}", testServiceA)
}

def "With variable definitions and variable data, variables are proxied"() {
Expand Down Expand Up @@ -127,6 +131,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
operationDefinition.getVariableDefinitions().get(0).getName() == "varDef"
serviceAExecutionInput.getVariables()["varDef"] == [ s : "String Input" ]

compareQueryToExecutionInput(null, "query TestQuery(\$varDef:InputA) {fieldA(objectArgA:\$varDef)}", testServiceA)
}

def "With variable definitions but no variable Data, variables definitions are proxied"() {
Expand Down Expand Up @@ -156,6 +162,8 @@ class DownstreamVariableProxyingSpec extends BaseIntegrationTestSpecification {
OperationDefinition operationDefinition = document.getOperationDefinition("TestQuery").get()
operationDefinition.getVariableDefinitions().get(0).getName() == "varDef"
serviceAExecutionInput.getVariables().size() == 0

compareQueryToExecutionInput(null, "query TestQuery(\$varDef:InputA) {fieldA(objectArgA:\$varDef)}", testServiceA)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,8 @@ class QueryDirectiveSpec extends BaseIntegrationTestSpecification {
pet_type_field.getDirectives().get(0).getName() == "include"
pet_type_field.getDirectives().get(0).getArgument("if") != null

compareQueryToExecutionInput(null, """query BooksPetsAndUsers(\$includeType:Boolean!) {pets {id name type @include(if:\$includeType)}}""", petsService)

// userService
ExecutionInput userServiceExecutionInput = getCapturedDownstreamExecutionInput(userService)
Map<String, Object> userServiceVariables = userServiceExecutionInput.getVariables()
Expand All @@ -254,6 +256,8 @@ class QueryDirectiveSpec extends BaseIntegrationTestSpecification {
users_lastName_field.getDirectives().size() == 1
users_lastName_field.getDirectives().get(0).getName() == "include"
users_lastName_field.getDirectives().get(0).getArgument("if") != null

compareQueryToExecutionInput(null, "query BooksPetsAndUsers(\$includeType:Boolean!) {users {id firstName lastName @include(if:\$includeType)}}", userService)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
query.contains("charIdName")
query.contains("appearsIn")
query.contains("Character")
compareQueryToExecutionInput(null, "fragment charIdName on Character {id name} query QUERY {hero {__typename ...charIdName appearsIn ... on Droid {primaryFunction}}}", starWarsService)

Document document = parser.parseDocument(serviceExecutionInput.getQuery())
document.getDefinitions().size() == 2
Expand Down Expand Up @@ -193,6 +194,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
query.contains("name")
query.contains("appearsIn")
query.contains("homePlanet")
compareQueryToExecutionInput(null, "query QUERY {human {name appearsIn homePlanet}}", starWarsService)

Document document = parser.parseDocument(serviceExecutionInput.getQuery())
document.getDefinitions().size() == 1
Expand Down Expand Up @@ -258,6 +260,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
query.contains("characters")
query.contains("name")
query.contains("appearsIn")
compareQueryToExecutionInput(null, "query QUERY {characters {name appearsIn __typename}}", starWarsService)

Document document = parser.parseDocument(serviceExecutionInput.getQuery())
document.getDefinitions().size() == 1
Expand Down Expand Up @@ -317,6 +320,7 @@ class QueryInterfaceSpec extends BaseIntegrationTestSpecification {
query.contains("QueryHuman")
query.contains("human")
query.contains("name")
compareQueryToExecutionInput(null, "query QueryHuman(\$humanId:String) {human(id:\$humanId) {name homePlanet}}", starWarsService)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ class QueryNestedSchemaSpec extends BaseIntegrationTestSpecification {
personQuery.contains("person")
personQuery.contains("id")
personQuery.contains("name")
compareQueryToExecutionInput(null, "query QUERY {person {name id}}", personService)

// bookService
ExecutionInput bookServiceExecutionInput = getCapturedDownstreamExecutionInput(bookService)
Expand All @@ -206,6 +207,7 @@ class QueryNestedSchemaSpec extends BaseIntegrationTestSpecification {
bookQuery.contains("book")
bookQuery.contains("id")
bookQuery.contains("name")
compareQueryToExecutionInput(null, "query QUERY {person {book {id name}}}", bookService)

// petsService
ExecutionInput petsServiceExecutionInput = getCapturedDownstreamExecutionInput(petsService)
Expand All @@ -216,6 +218,7 @@ class QueryNestedSchemaSpec extends BaseIntegrationTestSpecification {
petsQuery.contains("person")
petsQuery.contains("pets")
petsQuery.contains("name")
compareQueryToExecutionInput(null, "query QUERY {person {pets {name}}}", petsService)
}

}

0 comments on commit 73eee1e

Please sign in to comment.