Skip to content

Commit 6bde5e2

Browse files
committed
Fix field visibility
1 parent ea6abca commit 6bde5e2

File tree

3 files changed

+30
-16
lines changed

3 files changed

+30
-16
lines changed

src/test/groovy/graphql/execution/ExecutionStrategyTest.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import graphql.parser.Parser
2121
import graphql.schema.Coercing
2222
import graphql.schema.DataFetcher
2323
import graphql.schema.DataFetchingEnvironment
24+
import graphql.schema.FieldCoordinates
25+
import graphql.schema.GraphQLCodeRegistry
2426
import graphql.schema.GraphQLEnumType
2527
import graphql.schema.GraphQLFieldDefinition
2628
import graphql.schema.GraphQLScalarType
@@ -71,7 +73,7 @@ class ExecutionStrategyTest extends Specification {
7173
.queryStrategy(executionStrategy)
7274
.mutationStrategy(executionStrategy)
7375
.subscriptionStrategy(executionStrategy)
74-
.variables(variables)
76+
.coercedVariables(CoercedVariables.of(variables))
7577
.context("context")
7678
.graphQLContext(GraphQLContext.newContext().of("key","context").build())
7779
.root("root")
@@ -86,6 +88,7 @@ class ExecutionStrategyTest extends Specification {
8688
def "complete values always calls query strategy to execute more"() {
8789
given:
8890
def dataFetcher = Mock(DataFetcher)
91+
8992
def fieldDefinition = newFieldDefinition()
9093
.name("someField")
9194
.type(GraphQLString)

src/test/groovy/graphql/execution/instrumentation/fieldvalidation/FieldValidationTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import graphql.execution.ExecutionId
1212
import graphql.execution.ResultPath
1313
import graphql.execution.ValueUnboxer
1414
import graphql.execution.instrumentation.SimpleInstrumentation
15+
import graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters
1516
import spock.lang.Specification
1617

1718
import java.util.concurrent.CompletableFuture
@@ -308,7 +309,7 @@ class FieldValidationTest extends Specification {
308309
def execution = new Execution(strategy, strategy, strategy, instrumentation, ValueUnboxer.DEFAULT)
309310

310311
def executionInput = ExecutionInput.newExecutionInput().query(query).variables(variables).build()
311-
execution.execute(document, schema, ExecutionId.generate(), executionInput, SimpleInstrumentation.INSTANCE.createState())
312+
execution.execute(document, schema, ExecutionId.generate(), executionInput, SimpleInstrumentation.INSTANCE.createState(new InstrumentationCreateStateParameters(schema, executionInput)))
312313
}
313314

314315
}

src/test/groovy/graphql/schema/visibility/GraphqlFieldVisibilityTest.groovy

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@ class GraphqlFieldVisibilityTest extends Specification {
2727
def "visibility is enforced"() {
2828

2929
GraphqlFieldVisibility banNameVisibility = newBlock().addPattern(".*\\.name").build()
30+
GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry()
31+
.fieldVisibility(banNameVisibility)
32+
.build()
3033
def schema = GraphQLSchema.newSchema()
3134
.query(StarWarsSchema.queryType)
32-
.fieldVisibility(banNameVisibility)
35+
.codeRegistry(codeRegistry)
3336
.build()
3437

3538
def graphQL = GraphQL.newGraphQL(schema).build()
@@ -56,13 +59,13 @@ class GraphqlFieldVisibilityTest extends Specification {
5659
}
5760

5861
def "introspection visibility is enforced"() {
59-
60-
6162
given:
62-
63+
GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry()
64+
.fieldVisibility(fieldVisibility)
65+
.build()
6366
def schema = GraphQLSchema.newSchema()
6467
.query(StarWarsSchema.queryType)
65-
.fieldVisibility(fieldVisibility)
68+
.codeRegistry(codeRegistry)
6669
.build()
6770

6871
def graphQL = GraphQL.newGraphQL(schema).build()
@@ -93,10 +96,12 @@ class GraphqlFieldVisibilityTest extends Specification {
9396

9497
def "introspection turned off via field visibility"() {
9598
given:
96-
99+
GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry()
100+
.fieldVisibility(NO_INTROSPECTION_FIELD_VISIBILITY)
101+
.build()
97102
def schema = GraphQLSchema.newSchema()
98103
.query(StarWarsSchema.queryType)
99-
.fieldVisibility(NO_INTROSPECTION_FIELD_VISIBILITY)
104+
.codeRegistry(codeRegistry)
100105
.build()
101106

102107
def graphQL = GraphQL.newGraphQL(schema).build()
@@ -278,16 +283,15 @@ enum Episode {
278283
}
279284

280285
def "ensure execution cant get to the field"() {
281-
282-
283286
when:
287+
GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry()
288+
.fieldVisibility(ban(['Droid.appearsIn']))
289+
.build()
284290
def schema = GraphQLSchema.newSchema()
285291
.query(StarWarsSchema.queryType)
286-
.fieldVisibility(ban(['Droid.appearsIn']))
292+
.codeRegistry(codeRegistry)
287293
.build()
288294

289-
290-
291295
def executionStrategy = new AsyncExecutionStrategy() {
292296

293297
// gives us access to this unit tested method
@@ -340,9 +344,12 @@ enum Episode {
340344
er.getData() == ["hello": "world"]
341345

342346
when:
347+
GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry()
348+
.fieldVisibility(ban(['InputType.closedField']))
349+
.build()
343350
schema = GraphQLSchema.newSchema()
344351
.query(inputQueryType)
345-
.fieldVisibility(ban(['InputType.closedField']))
352+
.codeRegistry(codeRegistry)
346353
.build()
347354

348355
graphQL = GraphQL.newGraphQL(schema).build()
@@ -366,9 +373,12 @@ enum Episode {
366373

367374
given:
368375

376+
GraphQLCodeRegistry codeRegistry = GraphQLCodeRegistry.newCodeRegistry()
377+
.fieldVisibility(fieldVisibility)
378+
.build()
369379
def schema = GraphQLSchema.newSchema()
370380
.query(inputQueryType)
371-
.fieldVisibility(fieldVisibility)
381+
.codeRegistry(codeRegistry)
372382
.build()
373383

374384
def graphQL = GraphQL.newGraphQL(schema).build()

0 commit comments

Comments
 (0)